CentOS8安裝MySQL8.0.23


一、下載

鏈接:https://dev.mysql.com/downloads/mysql/

點擊 Download,如下圖:

沒有登陸,點擊 “No thanks,just start my downlaod.” 即可下載

二、安裝

2.1 將下載的mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz上傳到服務器,並解壓為tar

命令:xz -dev mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz

如下圖:

2.2 解壓mysql-8.0.23-linux-glibc2.12-x86_64.tar 到 目錄 /opt/module下面

解壓命令:tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar -C /opt/module/

重命名:mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql8

如下圖,

2.3 進入mysql解壓后的目錄mysql8,並創建存放mysql日志的目錄

cd /opt/module/mysql8/

mkdir data

2.4 配置mysql環境變量

MYSQL_HOME=/opt/module/mysql8/bin

PATH=$PATH:$MYSQL_HOME

export MYSQL_HOME PATH

如下圖:

配置完成后重載:

source /etc/profile

2.5 創建mysql用戶組和mysql用戶

groupadd mysql
useradd -g mysql mysql

如下圖:

2.6 關聯myql用戶到mysql用戶組中

進入到mysql8所在目錄,此例中為/opt/module/

 2.7 更改mysql安裝文件夾mysql的權限

[root@localhost module]# chmod -R 755 mysql8

2.8 安裝libaio依賴包

查詢是否安裝libaio依賴包

yum search libaio

如果沒安裝,可以用下面命令安裝:

yum install libaio

2.9 初始化mysql命令

mysqld --user=mysql --basedir=/opt/module/mysql8 --datadir=/opt/module/mysql8/data --initialize

紅色框內的是mysql數據庫登錄的臨時密碼,保存備用,每個人安裝生成的臨時密碼不一樣。

2.10 啟動mysql服務

sh /opt/module/mysql8/support-files/mysql.server start

上面啟動mysql服務命令是會報錯的,因為沒有修改mysql的配置文件,報錯內容大致如下:

2.11 修改Mysql配置文件

vim /opt/module/mysql8/support-files/mysql.server

修改以下屬性:

basedir=/opt/module/mysql8
datadir=/opt/module/mysql8/data

mysqld_pid_file_path=/opt/module/mysql8/data/mysqld_pid

如下圖所示:

接下來,

cp /opt/module/mysql8/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

將mysql服務加到系統服務中
chkconfig --add mysqld

開機自啟動
chkconfig mysqld on

如下圖:

 2.12 修改my.cnf文件

這里下載的mysql8.0.23版本並沒有這個my.cnf文件,因此直接創建的。

vim /etc/my.cnf

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
basedir=/opt/module/mysql8
datadir=/opt/module/mysql8/data
socket=/tmp/mysql.sock
user=mysql
port=3306
character_set_server=utf8
# symbolic-links=0
# bind-address=0.0.0.0


[mysqld_safe]
log-error=/opt/module/mysql8/data/error.log
pid-file=/opt/module/mysql8/data/mysqld.pid
tmpdir=/tmp

my.cnf 如下圖:

然后,授權文件my.cnf(注意:這一步有待思考?)

[root@localhost etc]# chown mysql:mysql my.cnf

[root@localhost etc]# chown mysql my.cnf

[root@localhost etc]# chmod 755 my.cnf

再次啟動mysql服務成功,如下圖:

2.13 啟動服務

查看服務:service mysqld status

停止服務:service mysqld stop

啟動服務:service mysqld start

如下圖:

2.14 登錄mysql

mysql -uroot -p

此時出現錯誤:./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

解決辦法:yum install libncurses* 完美解決!

再次登錄mysql(注意:這里的密碼是初始化生成的臨時密碼)

 

2.15 修改初始化用的臨時密碼

use mysql

報錯如下:

解決辦法:

修改初始密碼:alter user 'root'@'localhost' identified by 'root';

刷新:flush privileges;

至此,完成mysql8.0.23的安裝。

Navicat Premium 連接MYSQL8出現10060 “Unkown error”解決辦法:

首先檢查是否ping得通,其次再檢查如下原因:

原因一:由於mysql 沒有開啟對外訪問權限

原因二:由於防火牆沒有對外開放mysql的默認端口3306導致

原因三:由於阿里雲或者是騰訊雲的安全組規則沒有開放3306端口

參考:https://blog.csdn.net/weixin_43967679/article/details/107247901 此文章可解決;

如果還未解決,通過netstat查看3306的端口狀態是怎么樣的?是否綁定了本地回旋地址?

netstat -apn | grep 3306

如果MySQL的默認bind-address(監聽IP地址)為127.0.0.1,即只能為本機提供服務,禁止遠程連接。則只需要如下解決:

[mysqld]
bind-address = 0.0.0.0

但這里不是,我這里的原因是防火牆沒有放行。

另外,由於是CentOS8版本,防火牆命令有差異,參考https://blog.csdn.net/RougeK/article/details/108676073即可。

關閉防火牆
關閉防火牆
#禁用,禁止開機啟動: systemctl disable firewalld
#停止運行: systemctl stop firewalld

yum安裝iptables
yum -y install iptables-services

啟動
systemctl start iptables

配置
vim /etc/sysconfig/iptables

由於我這里是測試環境,在虛擬機內使用,則直接關閉了防火牆,實際生產環境應該是放行3306端口。如下圖:

然后再重啟Linux,再進行Navicat Premium連接,提示一下錯誤:

又該如何解決?

原因分析:

其實是mysql8.0版更換了新的身份驗證是(caching_sha2_password)之前身份驗證是(mysql_native_password),Navicat,和SQLyog客戶端軟件其實是不支持新的身份驗證,也就是說新的身份驗證找不到(caching_sha2_password),既然知道了是這個問題,那么我們就把登錄密碼加密規則改回(mysql_native_password)即可。

參考:https://blog.csdn.net/weixin_40845165/article/details/84076691 即可:

第一步:登錄MySQL

mysql -uroot -p

第二步:修改加密規則

alter user 'root'@'%' identified by 'password' password expire never;

第三步:更新用戶密碼

alter user 'root'@'%' identified with mysql_native_password by 'password';

第四部:刷新權限

flush privileges;

第五步:重置密碼

alter user 'root'@'%' identified by 'root';

如下圖:

再次重新連接,成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM