安裝環(huán)境
- 操作系統(tǒng):ReadHat 6 x86_64
- 數(shù)據庫:Mysql 5.7
準備工作
檢查是否安裝已有Mysql 或 其依賴包灌具,如有則需要卸載
rpm -qa | grep mysql
rpm -e 包名 --nodeps
安裝
安裝包列表
- mysql-community-common-5.7.17-1.el6.x86_64.rpm
- mysql-community-- libs-5.7.17-1.el6.x86_64.rpm
- mysql-community-client-5.7.17-1.el6.x86_64.rpm
- mysql-community-devel-5.7.17-1.el6.x86_64.rpm (可選)
- mysql-community-server-5.7.17-1.el6.x86_64.rpm
安裝命令
rpm -ivh mysql-community-common-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.17-1.el6.x86_64.rpm
安裝過程如圖
mysql 安裝
初始化
在 *nix 系統(tǒng)中汽久,為了保證數(shù)據庫目錄為與文件的所有者為 mysql 登陸用戶游两,如果你是以 root 身份運行 mysql 服務,需要執(zhí)行下面的命令初始化
mysqld --initialize --user=mysql
如果是以 mysql 身份運行,則可以去掉 --user 選項。
--initialize
初始化的贾虽,會生成一個 root 賬戶密碼,密碼在log文件里
/var/log/mysqld.log
文件的最后一行就是root 密碼熙侍,該密碼被標記為過期榄鉴,故首次登錄后需要修改root的密碼才能使用MySQL
基礎配置
Mysql默認的端口是3306
修改MySQL端口及默認存儲引擎
在 /etc/my.cnf
的[mysqld]下面添加或修改
port=6033
default-storage-engine=INNODB
啟動停止MySQL
service mysqld status 檢測mysql服務狀態(tài)
service mysqld start
service mysqld stop
修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Eoy!E!%X';
創(chuàng)建用戶
默認root用戶是不能遠程登錄的,也不提供遠程功能蛉抓。故需要創(chuàng)建一個用戶來用于遠程登錄
create user trustmo identified by 'f76Ta,2G';
備注:
第一個:用戶名
第二個:用戶名密碼
創(chuàng)建數(shù)據庫及權限分配
- 創(chuàng)建數(shù)據庫并指定字符集
create database updb default charset utf8 collate utf8_bin;
- 分配權限
grant all on updb.* to trustmo@"%" identified by 'f76Ta,2G' with grant option;
- 刷新緩存使生效
flush privileges;
遇到的問題及解決
表名查詢不區(qū)分大小寫
在 /etc/my.cnf
的[mysqld]下面添加或修改
lower_case_table_names=1
MySQL在Linux下數(shù)據庫名庆尘、表名、列名巷送、別名大小寫規(guī)則是這樣的:
1驶忌、數(shù)據庫名與表名是嚴格區(qū)分大小寫的;
2、表的別名是嚴格區(qū)分大小寫的付魔;
3聊品、列名與列的別名在所有的情況下均是忽略大小寫的;
4几苍、變量名也是嚴格區(qū)分大小寫的翻屈;
MySQL在Windows下都不區(qū)分大小寫。
this is incompatible with sql_mode=only_full_group_by錯誤
- 查詢當前使用的sqlmode
select @@sql_mode;
結果如下:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
在 /etc/my.cnf
的[mysqld]下面添加或修改
sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
上面的查詢結構集去掉 ONLY_FULL_GROUP_BY 選項