MySQL8.0.18通用版本安裝


環境說明:

  系統版本:CentOS release 6.8 (Final)

  MySQL版本:mysql-8.0.18

  內存:63G

  空間:8T

1 配置本地yum倉庫

 這個只需要拷貝一個鏡像,然后掛載鏡像到某個目錄,最后將哪個目錄配置為yum倉庫的目錄即可

2 下載安裝包:wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

3 解壓安裝包:tar -zxf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz -C /usr/local/mysql8

4 創建用戶,MySQL數據目錄和授權

mkdir /data/mysql8

useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql8

chown mysql:mysql /usr/local/mysql8/ -R

chown -R mysql:mysql /data/mysql8/ 

5 MySQL初始化

cd /usr/local/mysql8/

###  注意,生產環境中一般要設置忽略表名大小寫。這個參數必須在初始化數據庫時就要指定,否則在建庫完成之后,在修改配置文件會報錯

 

sudo bin/mysqld --initialize  --lower-case-table-names=1 --user=mysql --basedir=/usr/local/mysql8 --datadir=/data/mysql8  # 注意初始化命令執行后會生成一個臨時root密碼

sudo bin/mysql_ssl_rsa_setup --datadir=/data/mysql8    #生成密鑰對

6 將MySQL服務添加到系統服務中

sudo cp support-files/mysql.server /etc/init.d/mysqld -r

vim /etc/init.d/mysqld    #修改配置文件中,指定數據目錄和安裝目錄

datadir=/data/mysql8

basedir=/usr/local/mysql8

7 配置環境變量,使用命令

sudo vim /etc/profile   #文件末尾追加以下內容

#set MySQL
export PATH=$PATH:/usr/local/mysql8/bin:/usr/local/mysql8/sbin

source /etc/profile

8 啟動MySQL服務,先刪除配置文件

sudo rm -rf /etc/my.cnf

如果在初始化時指定了忽略大小寫,則必須先在/etc/my.cnf配置文件中加上忽略大小寫的選項,MySQL才能啟動成功。如果沒有指定,則可以忽略這一步

echo "[mysqld]" >> /etc/my.cnf

echo "lower-case-table-names=1" >> /etc/my.cnf

echo "default_authentication_plugin=mysql_native_password" >> /etc/my.cnf

sudo /etc/init.d/mysqld start

#使用臨時密碼登陸數據庫

mysql -uroot -p臨時密碼

登陸之后立即修改數據庫的密碼:

mysql>ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼';

刷新權限表:

mysql>flush privileges;

9 使用新修改的root密碼登錄MySQL,並給新用戶授權

https://www.cnblogs.com/xxsl/p/10791137.html

mysql -uroot -p新密碼

mysql>user mysql;

mysql>create user testuser@'%' identified by 'testuser';

mysql>grant all privileges on *.* to 'testuser'@'%' with grant option;

mysql>flush privileges;

10 配置MySQL配置文件 /etc/my.cnf

先停止服務:

/etc/init.d/mysqld stop

在修改配置文件:

vim /etc/my.cnf

[mysqld]

datadir=/data/mysql8
basedir=/usr/local/mysql8
user=mysql

socket=/data/mysql8/mysql.sock

## Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
## instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
log-error=/data/mysql8/mysql.log
pid-file=/data/mysql8/mysql.pid

 

11 重啟MySQL,使用root連接

報錯顯示找不到套接字文件,做一個軟連接

ln -s /data/mysql8/mysql.sock /tmp/mysql.sock

再次登陸成功

mysql -uroot -p新密碼

登陸,可以成功查看

12  設置MySQL服務為開機自啟動

chkconfig mysqld on

chkconfig --list |grep mysqld

13 使用客戶端navicat連接 總是報錯1251;

之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password,直接去連接Navicat會報錯1251

解決辦法:

在/etc/my.cnf中添加:default_authentication_plugin=mysql_native_password

然后在數據庫中修改testuser的認證方式:

https://blog.csdn.net/u011182575/article/details/80821418

重啟數據庫:service mysqld restart

 

 

報錯二:mysql8完成安裝后,優化參數忽略表名大小寫時報錯如下

 具體優化步驟如下:

1 關閉MySQL服務  /etc/init.d/mysqld stop

2 修改配置文件,添加忽略表明大寫的參數

vim /etc/my.cnf

在[mysqld]下面配置如下參數

lower_case_table_names=1

3 重啟MySQL服務器:/etc/init.d/mysqld start

報錯如下:

4 具體解決辦法:查閱官方文檔后發現,如果要讓忽略表名大小寫的配置生效,則必須在數據庫初始化時指定此參數。

  如果數據比較重要,則可以先進行數據庫全庫備份。

  然后在刪除數據庫

  重新初始化數據庫,執行忽略表名大小寫的參數值為1 

 


免責聲明!

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



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