在CentOS7中默認安裝有MariaDB,這個是MySQL的分支,在系統中安裝MySQL完成之後可以直接覆蓋掉MariaDB。
1. 下載並安裝MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
使用yum命令安裝MySQL
yum -y install mysql-community-server
直到安裝成功中間會安裝約2分鐘。。。
2. MySQL數據庫設置
啓動mysql服務器
systemctl start mysqld.service
查看mysql運行狀態
systemctl status mysqld.service
Mysql 被成功安裝後,會給出root用戶的密碼,需要通過命令獲取
grep "password" /var/log/mysqld.log
使用命令登錄Mysql數據庫
mysql -uroot -p
回車後,輸入上面的root密碼
登錄成功後,需要首先修改root用戶密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
在設置新密碼時,如果新密碼設置的比較簡單,則會出現如下錯誤:
原因是因爲MySQL有密碼設置的規範,具體是與validate_password_policy的值有關:
可以通過下面命令查看:
SHOW VARIABLES LIKE 'validate_password%';
密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
修改密碼規則可以通過下面命令
set global validate_password_policy=0;
set global validate_password_length=1;
爲了 防止yum自動更新,需要將repository安裝源移除
yum -y remove mysql57-community-release-el7-10.noarch
如果需要設置mysql表字段不區分大小寫,則需要在/et/my.cnf配置文件最後添加如下內容
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
添加後,服務需要重啓才能生效
如果Mysql客戶端連接拒絕,則通過以下命令設置
grant all privileges on *.* to 'root'@'%' with grant option;
或
grant all privileges on *.* to 'root'@'localhost' with grant option;
二者區別:
'root'@'%' 表示在mysql客戶端登錄root用戶,可以使用grant命令爲其他用戶賦權限
'root'@'localhost' 表示僅能在mysql所在服務器登錄root用戶,才能使用grant命令爲其他用戶賦權,生產環境推薦使用該方式