CentOS7部署Mysql8.0.27

語言: CN / TW / HK

theme: awesome-green

一起養成寫作習慣!這是我參與「掘金日新計劃 · 4 月更文挑戰」的第7天,點選檢視活動詳情

📢📢📢📣📣📣\ 哈嘍!大家好,我是【IT邦德】,江湖人稱jeames007,10年DBA工作經驗\ 中國DBA聯盟(ACDU)成員,目前從事DBA及程式程式設計😜😜😜\ 擅長Oracle、MySQL、PG 運維開發,備份恢復,安裝遷移,效能優化、故障應急處理等。\ ❤️❤️❤️感謝各位大可愛小可愛!❤️❤️❤️

摘要:此文是在CentOS7.3環境下部署Mysql8.0.27

``` 近期Mysql已經發布了最新的8.0.27 RPM包, 此文是在CentOS7.3環境下部署Mysql8.0.27 剛開始以為很簡單,可是實際的過程中發現8.0.27有很多坑, 需要升級的地方很多,後期還是建議在Linux高版本安裝部署, 特總結了以下詳細的安裝過程分享給大家。 整個過程有4個坑,希望對DBA們有幫助

```

一、 環境確認

1.1 作業系統 [root@jeames ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 1.2 防火墻

[root@jeames ~]# systemctl status firewalld --關閉防火牆 systemctl stop firewalld

1.3 selinux關閉

[root@jeames ~]# sestatus SELinux status: disabled [root@jeames ~]# getenforce Disabled 1.4 解除安裝mariadb

--解除安裝centos7中自帶的mariadb [root@jeames ~]# rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

二、 安裝部署

2.1 yum安裝

yum -y install lrzsz wget perl-Digest-MD5 yum -y install numactl yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

2.2 新增使用者及組

[root@jeames ~]# groupadd mysql 刪除組:groupdel users --使用者加到組並指定根目錄 [root@jeames ~]# useradd -g mysql -d /home/mysql mysql useradd: warning: the home directory already exists. Not copying any file from skel directory into it. 刪除使用者:userdel mysql [root@jeames ~]# passwd mysql New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully.

2.3 安裝Mysql

[root@jeames ~]# md5sum mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar edf4d0f95867f62cdcc97b7349bedc59 mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar [root@jeames ~]# tar -xvf mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar -C /home/mysql/

必須安裝的四個 mysql-community-common-8.0.27-1.el8.x86_64.rpm mysql-community-libs-8.0.27-1.el8.x86_64.rpm mysql-community-client-8.0.27-1.el8.x86_64.rpm 是客戶端的安裝包 mysql-community-server-8.0.27-1.el8.x86_64.rpm 是服務端的安裝包

授權

[root@jeames ~]# chown -R mysql:mysql /home/mysql/ 安裝

``` 注:root使用者下操作 [root@jeames ~]# cd /home/mysql/ 裝順序:包之間相互依賴,所以必須注意安裝順序 ✓ 先裝 common ✓ 再裝 libs 確保 mariadb 已解除安裝,centos7 預設支援 mariadb,不支援 mysql,不解除安裝會出現衝突 ✓ 再裝 client ✓ 最後裝 server

[root@jeames mysql]# rpm -ivh mysql-community-common-8.0.27-1.el8.x86_64.rpm

[root@jeames mysql]# rpm -ivh --force --nodeps mysql-community-libs-8.0.27-1.el8.x86_64.rpm

[root@jeames mysql]# rpm -ivh mysql-community-client-8.0.27-1.el8.x86_64.rpm --force --nodeps

[root@jeames mysql]# rpm -ivh mysql-community-server-8.0.27-1.el8.x86_64.rpm --force --nodeps ```

初始化

``` 此處第一個坑 [root@jeames mysql]# mysqld --initialize mysqld: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory 注意:此處報錯請看以下部落格處理: https://blog.csdn.net/weixin_41645135/article/details/121479431

此處第2個坑 [root@jeames mysql]# mysqld --initialize 處理方法: wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.3.0-6_amd64.deb ar -x libstdc++6_8.3.0-6_amd64.deb tar -xvf data.tar.xz find / -name "libstdc++" [root@jeames ~]# cp /root/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 /usr/lib64/ [root@jeames ~]# ll /usr/lib64/libstd [root@jeames ~]# rm -rf /usr/lib64/libstdc++.so.6 [root@jeames ~]# ln -s /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6

[root@jeames mysql]# mysqld --initialize 此處第3個坑 mysqld: /lib64/libc.so.6: version GLIBC_2.28' not found (required by mysqld) mysqld: /lib64/libc.so.6: versionGLIBC_2.18' not found (required by /lib64/libstdc++.so.6)

處理方法: wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz tar zxf glibc-2.18.tar.gz cd glibc-2.18/ mkdir build cd build/

centos 升級GCC編譯器

yum -y install centos-release-scl yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils scl enable devtoolset-8 bash echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile

升級make

wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz tar -xzvf make-4.2.tar.gz cd make-4.2 ./configure make make install rm -rf /usr/bin/make cp ./make /usr/bin/ make -v

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make && make install

耐心等待10分鐘左右

注意:以上操作之後重啟伺服器後然後再初始化Mysql [root@jeames mysql]# mysqld --initialize ```

三、 啟動Mysql

3.1 啟動 mysql 服務

Step1:檢視當前服務是否啟動 [root@jeames ~]# ps -ef | grep mysql

[root@jeames ~]# chown mysql:mysql /var/lib/mysql -R [root@jeames ~]# systemctl start mysqld [root@jeames ~]# systemctl status mysqld [root@jeames ~]# systemctl enable mysqld [root@jeames ~]# cat /var/log/mysqld.log | grep password

3.2 建立遠端使用者

``` 登入,建立新使用者用以遠端登入

動態庫設定

[root@jeames ~]# mysql: error while loading shared libraries: libtinfo.so.6: cannot open shar 處理辦法: find / -name libtinfo.so.5 libtinfo.so.6.1拷貝至/usr/lib64後做個快捷方式 ln -s libtinfo.so.6.1 libtinfo.so.6 libncurses.so.6拷貝至/usr/lib64即可

```

3.3 臨時密碼登陸

[root@jeames ~]# grep 'temporary password' /var/log/mysqld.log [root@jeames ~]# mysql -uroot -p

處理過程參考以下部落格 Mysql8.0修改簡易密碼root報錯處理: https://blog.csdn.net/weixin_41645135/article/details/120588681

3.4 遠端登陸

mysql> create user root@'%' identified with mysql_native_password by 'root'; mysql> grant all on *.* to root@'%' with grant option; mysql> flush privileges;

相關推薦閱讀: MySQL8.0新特性搶先看,效能又雙叒提升了\ MySQL武林祕籍,SQL學廢必過考試\ Linux7.6原始碼安裝Mysql8\ Oracle巡檢指令碼大全,伺服器可直接部署\ MySQL root密碼忘記找回妙招\ 監控神器Zabbix,從部署到應用\ Oracle監聽日誌清除

大家可以點贊、收藏、關注、評論我啦 、有資料庫相關的問題隨時聯絡我或交流喲~!