[目錄]
建議順序閱讀
4.Mysql數據庫的安裝與配置
CentOS7的yum源中默認好像是沒有mysql的,所有我們採用從官方下載的方式進行安裝。
爲了節省時間,下面的步驟參考網絡上的教程,根據最新情況進行了修改。
①卸載Mariadb
1)查看mariadb數據庫:
rpm -qa | grep mariadb
2)卸載mariadb數據庫:
rpm -e --nodeps mariadb文件名
3)刪除etc目錄下的my.cnf文件:
rm /etc/my.cnf
如果提示沒有該文件,忽略該提示,是因爲步驟2中已經自動刪除,此操作爲了防止殘留。
②下載5.7的mysql
打開5.7版本的下載鏈接,最新的版本爲5.7.28,https://dev.mysql.com/downloads/mysql/5.7.html#downloads,系統選擇Red Hat Enterprise版本即可,選擇bundle捆綁包進行下載。
或者直接使用下面的命令:
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
③解壓
將下載的mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
包複製到指定目錄,進入該目錄後解壓包。
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar # 解壓文件,解壓出一系列rpm 文件
④安裝rpm包
按照指定順序安裝rpm包,這幾個文件是存在依賴關係的,所以在安裝時有對應的優先級,需要按順序安裝:
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.28-1.el7.x86_64.rpm
所以之前不下載總包,只下載下面這幾個包應該也行。
Tips:我實際按照此步驟操作時,安裝server會失敗,提示:libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.28-1.el7.x86_64
。
這裏需要安裝numactl,使用命令:yum -y install numactl
,這時候再執行rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
即可。
⑤啓動mysql服務
安裝成功後,開啓 mysql 服務:
systemctl start mysqld
設置爲開機啓動:
systemctl enable mysqld
查看 3306 端口是否開啓:
netstat -ln | grep 3306
⑥修改 my.cnf 配置文件
需要找到 my.cnf 文件。my.cnf 文件的默認路徑爲/etc/my.cnf
。
編輯my.cnf:
vim /etc/my.cnf
插入以下代碼:
validate_password=off
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
注:validate_password=off
的意思是關閉密碼驗證插件(這一句必須加上,因爲在修改密碼的時候如果不加上會非常的麻煩)。
重啓 mysql 服務:
systemctl restart mysqld
⑦ 重置密碼
mysql5.7初始化後,會產生一個臨時登錄密碼,前面在 my.cnf 文件中配置的日誌路徑是log-error=/var/log/mysqld.log
, 查看此路徑下面的mysqld.log
日誌, 可以找到臨時密碼。
示例行:A temporary password is generated for root@localhost: Xk.6:/1gYjfh
這裏Xk.6:/1gYjfh
就是臨時密碼。
接下來登錄重置密碼:
mysql -u root -p
mysql> set password=password('新密碼');
mysql> flush privileges;
mysql> exit;
這時候你可以使用mysql -u root -p
重新使用新密碼登錄,驗證有無修改成功。
⑧添加遠程訪問權限
#登錄mysql
mysql> use mysql
mysql> update user set host='%' where user='root';
mysql> select host,user from user;
mysql> flush privileges;
#退出mysql,重啓mysql服務生效