前言
基於本地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>提示時,說明上傳成功
html
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 指定路徑下的文件名
node
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
二.添加mysql組和用戶及權限分配
1.檢查mysql組和用戶是否存在,如無建立
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
2.建立mysql用戶組,指定mysql用戶屬於mysql組
groupadd mysql
useradd -g mysql mysqllinux
3.修改用戶mysql的密碼爲A2019a(本身設定),回車後輸入密碼sql
passwd mysql
4給予安裝目錄mysql權限
chown -R mysql:mysql /usr/local/mysqlshell
三.建立和設置配置文件my.cnf
1.在/etc/下建立建立my.cnf
touch /etc/my.cnf
vi /etc/my.cnf
在配置文件my.cnf添加以下配置(注意注意:別打錯單詞了,我就試過差點懷疑人生)
[mysql]數據庫
# 設置mysql客戶端默認字符集安全
default-character-set=utf8 服務器
[mysqld]ide
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