*本教程將介紹如何在CentOS 7服務器上安裝MySQL版本5.7
*CentOS 7已經使用 MariaDB 替代了 MySQL,如直接輸入“yum install mysql-server”則安裝 MariaDB
開始之前:
1. 更新系統(更新後建議重啓機器):
yum -y update
*yum -y update:升級所有包同時也升級軟件和系統內核 (推薦)
yum -y upgrade
*yum -y upgrade:只升級所有包,不升級軟件和系統內核
2. 檢測系統是否自帶安裝 MySQL:
rpm -qa | grep mysql
3. 卸載MySQL:
rpm -e mysql
*普通刪除模式,可能提示有其他依賴文件
rpm -e --nodeps mysql
*強力刪除模式,同時刪除依賴文件
4. 安裝wget(若已有則跳過):
yum install wget
安裝MySQL:
*如果你想使用 yum install mysql
在CentOS 7上安裝數據庫,MariaDB比MySQL更適合,除非你有特殊的需求
MySQL vs. MariaDB,“MariaDB will generally work seamlessly in place of MySQL”
1. rpm手動安裝
安裝依賴
yum -y install numactl-libs
下載安裝包 ( *CDN已失效 )
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.19-1.el7.x86_64.rpm
安裝
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm --nosignature
2. yum install mysql
正如前面提到的安裝MySQL的yum命令實際上安裝的是MariaDB。若要安裝MySQL我們需要訪問爲MySQL提供包的MySQL社區Yum Repository。
1. 在頁面中找到對應版本的下載地址,並記下對應版本的MD5值。
wget https://dev.mysql.com/get/mysql57-community-release-xxxx-xx.noarch.rpm
*mysql57-community-release-xxxx-xx.noarch.rpm 爲版本文件名,注意修改
2. 對比MD5值驗證完整性。
md5sum mysql57-community-release-xxxx-xx.noarch.rpm
*mysql57-community-release-xxxx-xx.noarch.rpm 爲版本文件名,注意修改
3. 確認MD5無誤後安裝該YUM源RPM安裝包:
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
*增加兩個新的MySQL yum存儲庫
4. 安裝MySQL :
yum install mysql-server
*提示是否接受GPG密鑰,輸入“y”即可繼續安裝
啓動MySQL:
啓動
systemctl start mysqld
查看
systemctl status mysqld
*如果MySQL已經成功啓動,輸出應該顯示Active: active (running)。
*安裝 MySQL時,MySQL會自動啓動。您可以更改該默認行爲 systemctl disable mysqld
。
開機自動啓動MySQL服務
systemctl enable mysqld
取消開機自動啓動MySQL服務
systemctl disable mysqld
*在安裝過程中,MySQL會爲根用戶生成一個臨時密碼(mysqld.log)。使用此命令找到它:
grep 'password' /var/log/mysqld.log
配置MySQL(rpm手動安裝):
登錄後修改密碼:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密碼');
*此處可能提示密碼不符合要求,輸入下列語句後重新修改密碼即可 :
set global validate_password_policy=0;
強制用戶使用SSL:
alter user 'test'@'%' REQUIRE SSL;
設置開機自啓:
chkconfig mysqld on
修改MySQL配置:
vim /etc/my.cnf
[client]
port=3306
default-character-set=utf8mb4
[mysqld]
port=3306
character-set-client-handshake=0
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
測試MySQL:
mysqladmin -u root -p version
重置MySQL根密碼:
如果你忘記了你的root密碼,它可以重置。
1. 停止當前的MySQL服務器實例,然後用一個選項重新啓動它,以不要求輸入密碼。
systemctl stop mysqld
mysqld_safe --skip-grant-tables &
2. 用MySQL根帳戶重新連接到MySQL服務器。
mysql -u root
3. 使用以下命令重置root的密碼。
use mysql;
update user SET PASSWORD=PASSWORD("新密碼") WHERE USER='root';
flush privileges;
exit
4. 然後重新啓動MySQL。
systemctl start mysqld
新建名爲scott的數據庫和名爲scott密碼爲tiger的用戶並使scott用戶擁有scott數據庫的所有權限
create database scott;
create user 'scott'@'%' IDENTIFIED BY 'tiger';
flush privileges;
grant all PRIVILEGES on scott.* to scott@'%' identified by 'tiger';
flush privileges;
exit;
參考文章: