前言
基於本地Centos7.6虛擬機Mysql8的配置(親測有效)
一.安裝前的准備
1.到官網下載mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
2.通過Xshell或者Xftp、PSPC、PSFTP等工具把安裝包上傳到CentOS服務器。
PSftp示范
(1)先在虛擬機上命令(ip addr)查看虛擬機的ip,沒有ip自己網上找配置方法
(2)打開psftp,連接虛擬機
open ip
(3)賬號密碼登錄(注意:要回復y or n時,要照提示輸入,不能直接回車)
(4)登陸成功后,當前目錄為root,切換到你要上傳的位置(這里以local目錄為例)
cd /usr/local/
(5)再切到本地存放mysql8壓縮包的目錄下(這里以F:\test為例)
lcd F:\test
(6)切到test目錄后,開始上傳(注意:后綴名也要打上去)
put mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
當提出pftp>提示時,說明上傳成功
3.在安裝前需要確定現在這個系統有沒有 mysql,如果有那么必須卸載。
(1)查看mysql數據庫
rpm -qa | grep -i mysql
(2)卸載mysql數據庫
rpm -e --nodeps mysql 文件名
(3)查找mysql文件
find / -name mysql
(4)刪除mysql有所文件和配置文件my.cnf(自己上傳的別錯刪了)
rm -rf 指定路徑下的文件名
4.解壓縮mysql文件
(1)xz –d /usr/local/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
(2)tar –xvf /usr/local/mysql-8.0.16-linux-glibc2.12-x86_64.tar
(3)mv /usr/local/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql
5.查看解壓后的文件
ls -al /usr/local/mysql
二.添加mysql組和用戶及權限分配
1.檢查mysql組和用戶是否存在,如無創建
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
2.創建mysql用戶組,指定mysql用戶屬於mysql組
groupadd mysql
useradd -g mysql mysql
3.修改用戶mysql的密碼為A2019a(自己設定),回車后輸入密碼
passwd mysql
4給予安裝目錄mysql權限
chown -R mysql:mysql /usr/local/mysql
三.創建和設置配置文件my.cnf
1.在/etc/下創建創建my.cnf
touch /etc/my.cnf
vi /etc/my.cnf
在配置文件my.cnf添加如下配置(注意注意:別打錯單詞了,我就試過差點懷疑人生)
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#設置3306端口
port = 3306
# 設置mysql的安裝目錄
basedir=/usr/local/mysql
# 設置mysql數據庫的數據的存放目錄
datadir=/usr/local/mysql/data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
2.賦my.cnf文件mysql權限
chown mysql:mysql /etc/my.cnf
四.mysql初始化配置
1.切換到mysql用戶權限
su mysql
2.初始化生成data目錄(切記不要手動創建data目錄)(補充:mysql用戶下初始化不成功(沒有生成密碼),用root用戶來操作,最后記得把生成data目錄賦予mysql用戶)
/usr/local/mysql/bin/mysqld --initialize
如果當前所在目錄為bin錄下,命令形式為./mysqld --initialize
./不能省略,否則出錯,因為省略后系統會當成mysqld程序執行,而不是bin目錄下的mysqld可執行文件
3.如果提示沒有libaio程序就先安裝yum install libaio-devel.x86_64然后不斷回y就行
但得先切回root用戶(命令su回車輸密碼即可),否則報錯權限不夠
不用安裝也要先切回root,否則下面步驟也會報錯
4.初始化完成后,仔細看提示,會自動生成mysql數據庫登陸密碼,記好
5.此時在mysql目錄下會生成data目錄,但權限只有750,要追加到755
chmod 755 /usr/local/mysql/data
(或者 chmod o+r+x /usr/local/mysql/data)
五.軟連接與開機啟動項設置
1.創建軟連接(實現可直接命令行執行mysql)
ln -s /usr/local/mysql/bin/mysql /usr/bin
2.mysqld配置,拷貝啟動文件到/etc/init.d/目錄下並重命令為mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
3.檢查自啟動項列表中有沒有mysqld
chkconfig --list mysqld
4.如果沒有就添加mysqld
chkconfig --add mysqld
5.設置開機啟動
chkconfig mysqld on
6.啟動測試
service mysqld start
六.pid問題解決
1.如果無法啟動,且提示pid錯誤;首先一定要確認配置文件有沒有打錯字母,改正后,刪除data目錄
rm -rf /usr/local/mysql/data
2.重新初始化一遍
/usr/local/mysql/bin/mysqld --initialize
3.記下密碼后,追加755權限給data目錄
chmod 755 /usr/local/mysql/data
4.再重新啟動mysql服務
service mysqld start
仍不行重試第六個標題步驟
按照前面來的操作,一般是不會有問題;配置文件中如果自定義mysql日志路徑,在創建文件夾存放日志文件時,該文件夾手動創建后要賦Mysql用戶權限
七.登錄mysql修改密碼
1.登錄mysql,前面最新的密碼就派上用場了
mysql -uroot -p密碼
2.修改密碼
set password='123456';
在yum或rpm在線安裝完成后,首次登錄強制修改密碼
alter user 'root'@'localhost' identified by '123456';
有的人可能試過上面這句直接修改密碼不行,此時可以先減低密碼的防御策略,之后再視情況修改
set global validate_password.policy=0;
set global validate_password.length=1;
再執行上面的修改密碼的語句
基本配置到此完成
mysql安全配置推薦參考https://www.freebuf.com/articles/database/36777.html