問題描述:
CentOS 7 之后的版本使用yum安裝MySQL是默認安裝miroadb,為了開發(fā)方便,想依然使用MySQL,就Google了一下,經(jīng)過幾個小時的努力,解決了一切問題。
1. 創(chuàng)建MySQL的yum庫,通過官方y(tǒng)um庫下載
選擇最新的MySQL源rpm包下載:
image.png
或者通過wget命令(最新下載地址可自己通過官網(wǎng)獲?。?p>
# 下載mysql源安裝包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安裝mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
# 檢查MySQL源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
2. 安裝 MySQL
- 通過修改
/etc/yum.repos.d/mysql-community.repo文件來改變默認安裝版本,該文件是一個指定子資源的入口。
例如,如果需要啟用 5.6 版本的源,就需要將如下所示的 5.6 版本源設(shè)置為enabled=1并將5.7版本源設(shè)置為enabled=0。若安裝其他如5.5版本,操作類似:
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=1 ### 啟用5.6版本源
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0 ### 禁用5.7版本源
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
- 安裝MySQL:
yum install mysql-community-server
- 啟動MySQL服務(wù):
systemctl start mysqld
# 或者
service mysqld start
注意:在5.7版本的MySQL啟動時,因為數(shù)據(jù)目錄是空的,所以會有以下操作:
服務(wù)器初始化
在數(shù)據(jù)目錄生成一個SSL證書和key文件
validate_password 插件安裝并啟用
創(chuàng)建一個超級管理帳號'root'@'localhost'。管理的密碼會保存在錯誤日志文件中,可以通過以下命令查看:
$ sudo grep 'temporary password' /var/log/mysqld.log
可以通過以下命令并使用自動生成的臨時密碼登錄,然后修改為一個自定義密碼:
$ mysql -u root -p
密碼修改:
### 在MySQL中:
$ ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';
### 上面的方法嘗試失敗,所以我通過了下面的方法:
### 在Linux中:
mysqladmin -u root password 'newPassword'
### 提示W(wǎng)arning: Using a password on the command line interface can be insecure,可忽略,也可自己查查問題,應(yīng)該是因為密碼簡單等小問題出現(xiàn)的。
MySQL的validate_password插件是默認安裝的。這要求MySQL密碼至少包含一個大寫字母、一個小寫字母、一個數(shù)字和一個特殊字符,并且總密碼長度至少為8個字符。
- 查看MySQL運行狀態(tài):
service mysqld status
3. 其他設(shè)置與優(yōu)化
默認配置文件路徑:
配置文件: /etc/my.cnf
日志文件: /var/log//var/log/mysqld.log
服務(wù)啟動腳本: /usr/lib/systemd/system/mysqld.service
socket文件: /var/run/mysqld/mysqld.pid
設(shè)置開機啟動
systemctl enable mysqld
systemctl daemon-reload
修改root默認密碼
有些版本MySQL安裝完成之后,在 /var/log/mysqld.log 文件中給root生成了一個默認密碼。通過下面的方式找到root默認密碼,然后登錄mysql進行修改:
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
# 進入MySQL
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
# 或者
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
關(guān)于密碼
- 通過msyql環(huán)境變量可以查看密碼策略的相關(guān)信息:
mysql> show variables like '%password%';
- 在/etc/my.cnf文件添加validate_password_policy配置,指定密碼策略
# 選擇0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2需要提供密碼字典文件
validate_password_policy=0
- 如果不需要密碼策略,添加my.cnf文件中添加如下配置禁用即可:
validate_password = off
# 重啟MySQL服務(wù)生效
systemctl restart mysqld
添加遠程登錄訪問用戶
默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,為了安全起見,我添加一個新的帳戶:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;
配置默認編碼為utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
