1. 程式人生 > 其它 >記錄Linux安裝MySQL8.0.22(基於CentOS 7 X86)

記錄Linux安裝MySQL8.0.22(基於CentOS 7 X86)

一、安裝包下載

下載地址:https://downloads.mysql.com/archives/community/


二、解除安裝衝突包、安裝依賴包

1、檢視系統是否安裝mariadb(linux系統預設有這個)

rpm -qa | grep mariadb

2、如果查詢出來有有安裝(類似如下圖資訊),則將其解除安裝

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

3、安裝MySQL依賴包

yum install libaio
三、上傳安裝包

將下載的壓縮包上傳到伺服器指定目錄
這裡使用FileZilla上傳

四、建立mysql使用者、建立mysql安裝目錄並授權給MySQL。

1、建立mysql使用者

useradd mysql;

2、給mysql設定密碼

passwd mysql;

3、建立mysql安裝目錄

mkdir /usr/local/mysql;

4、將mysql目錄的許可權授給mysql使用者

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

5、建立mysql資料存放目錄

mkdir /usr/local/mysql/mysqldb;

6、設定安裝目錄和存放目錄許可權

chmod -R 777 /usr/local/mysql;
chmod -R 777 /usr/local/mysql/mysqldb
五、解壓安裝包並將解壓內容移到安裝目錄

1、進入安裝包目錄

cd /root/tmp;

2、解壓安裝包

tar -zxvf mysql-8.0.22-el7-x86_64.tar.gz;

3、將解壓內內容移動到安裝目錄

mv mysql-8.0.22-el7-x86_64/* /usr/local/mysql;

4、刪除mysql-8.0.22-el7-x86_64目錄

rm -rf mysql-8.0.22-el7-x86_64;
六、建立mysql配置檔案

1、建立my.cnf檔案

vim /etc/my.cnf;

配置檔案內容如下(配置檔案中忽略大小寫的配置如果有需要必須在初始化前配置<官方文件中有提示,這個配置只能初始化時設定,後期修改配置檔案無效>)

[mysqld]
# 跳過許可權表校驗
# skip-grant-tables
skip-name-resolve
# 設定3306埠
port = 3306
# 設定mysql的安裝目錄
basedir=/usr/local/mysql
# 設定mysql資料庫的資料的存放目錄
datadir=/usr/local/mysql/mysqldb
# pid-file=/usr/local/mysql/mysqldb/mysql.pid
log-error=/usr/local/mysql/mysqldb/mysql.log
# 允許最大連線數
max_connections=2000
# 服務端使用的字符集預設為8位元編碼的latin1字符集
character_set_server=utf8
init_connect='SET NAMES utf8'
collation_server=utf8_bin
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
# 忽略大小寫
lower_case_table_names=1
# 接受的資料包大小
max_allowed_packet=2000M
tmp_table_size=500M
max_heap_table_size=500M
# 拼接字串最大位元組數
group_concat_max_len=4294967295
# 開啟二進位制日誌
server-id=11
# 開啟二進位制日誌,日誌檔名稱是 mysql-bin
log-bin=mysql-bin
# 日誌保留天數
# expire-logs-days=7
binlog_expire_logs_seconds=7
# 匯入匯出路徑限制
secure_file_priv=''
log-bin-trust-function-creators=1
# default-authentication-plugin = mysql_native_pssword
# 登入超時處理
wait_timeout=10000
interactive_timeout=10000
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
[client]
# 設定mysql客戶端連線服務端時預設使用的埠
port=3306
# 建立新表時將使用的預設資料集
default-character-set=utf8
七、初始化資料庫

1、進入MySQL安裝目錄的bin目錄下

cd /usr/local/mysql/bin;

2、初始化資料庫並記住隨機密碼(隨機密碼為最後一行root@localhost:後面的字元、這裡我沒有彈出隨機密碼)

./mysqld --initialize --console;

3、如果初始化後沒彈出隨機密碼可進入my.cnf中設定跳過許可權表校驗

八、啟動MYSQL服務並初始化設定

1、進入support-files目錄

cd /usr/local/mysql/support-files;

2、啟動服務

./mysql.server start;

錯誤提示:
①、啟動MySQL服務時報 my_print_defaults:。
可以去my.cnf配置檔案中檢查安裝目錄和資料目錄配置是否正確(不正確修改正確)

②、報without updating PID file錯誤
問題是因為解壓mysql的tar包檔案,許可權不夠。
重新給安裝目錄和資料目錄授權一次即可。

chmod -R 777 /usr/local/mysql;
chmod -R 777 /usr/local//mysql/mysqldb;

3、將MySQL加入系統程序

cp mysql.server /etc/init.d/mysqld

4、重啟服務

service mysqld restart

5、建立一個軟連線到 /usr/bin

ln -s /usr/local/mysql/bin/mysql /usr/bin;

6、本地登入mysql修改root密碼(初始化化密碼沒拿到的在my.cnf中設定跳過許可權驗證,輸入密碼時直接回車可進入資料庫)

mysql -uroot -p;



7、修改root賬號密碼

mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';

提示:
這裡提示異常的話,可能是設定跳過許可權表校驗引起的,可以先重新整理許可權再執行一次修改密碼

mysql>flush privileges;

8、建立使用者

mysql>create user 'admin123'@'%' identified by "asd1ad3";

8、賦予使用者許可權

mysql>grant all privileges on *.* to 'admin123'@'%';

9、設定允許遠端登入(建議root賬號不設定遠端登入、建立其他賬號設定遠端登入)

mysql>use mysql;
mysql>update user set user.Host='%' where user.User='admin123';
mysql>flush privileges;

10、退出mysql

mysql>quit;

11、進入my.cnf配置檔案將許可權驗證開啟(註釋掉)

vi /etc/my.cnf


12、重啟MySQL服務

service mysqld restart
九、開放資料庫埠3306

1、開放3306埠

firewall-cmd --zone=public --add-port=3306/tcp --permanent

2、重啟防火牆以使配置生效

systemctl restart firewalld

3、檢查3306埠是否開放

firewall-cmd --query-port=3306/tcp

提示:如果是租的阿里雲伺服器、需要在阿里雲伺服器管理控制頁面新增防火牆開放埠,否則遠端登入也無效。

MYSQL安裝完成。

安裝時參考:https://www.cnblogs.com/polarone/p/14154374.html