CentOS7安裝MySQL8

远里歌声_why發表於2024-11-24

文章目錄
環境介紹
一、安裝前準備
1.解除安裝MariaDB
1.1 檢視是否安裝mariadb
1.2 解除安裝
1.3 檢查是否解除安裝乾淨
2.檢查依賴
2.1 檢視是否安裝libaio
2.2 檢視是否安裝numactl
二、安裝MySQL
1.下載資源包
1.1 官網下載
1.2 wget下載
2.解壓
3.重新命名
4.建立儲存資料檔案
5.設定使用者組並賦權
6.初始化MySQL
7.配置引數檔案
8.啟動MySQL
9.設定軟連線,並重啟MySQL
10.登入並更改密碼
11.開放遠端連線
12.連線工具測試連線MySQL
13.MySQL啟動和停止
三、設定開機自啟動(可選)
環境介紹
作業系統:Centos7.6
MySQL版本: 8.0.30

本文使用的是當前最新8.0.30版本,如果需要安裝的版本比8.0.30高或者低,只要是8.0.*版本,那就可以按照本文說明安裝,基本不會有任何問題。

一、安裝前準備
1.解除安裝MariaDB
安裝MySQL的話會和MariaDB的檔案衝突,所以需要先解除安裝掉MariaDB。

1.1 檢視是否安裝mariadb

rpm -qa|grep mariadb

1.2 解除安裝

rpm -e --nodeps 檔名

1.3 檢查是否解除安裝乾淨

rpm -qa|grep mariadb

2.檢查依賴
2.1 檢視是否安裝libaio

rpm -qa|grep libaio

如果沒有安裝則執行

yum -y install libaio //安裝libaio

2.2 檢視是否安裝numactl

rpm -qa|grep numactl

如果沒有安裝則執行

yum -y install numactl //安裝numactl

二、安裝MySQL
1.下載資源包
可以在官網下載安裝包或者在伺服器直接使用wget下載。

1.1 官網下載
MySQL官網下載地址:https://dev.mysql.com/downloads/mysql/


1.2 wget下載

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-el7-x86_64.tar

2.解壓
注:本文安裝包上傳到了 /usr/local/ 目錄下

進入安裝包目錄

cd /usr/local/

拆分tar包

tar -xvf mysql-8.0.30-el7-x86_64.tar

解壓安裝包

tar -zxvf mysql-8.0.30-el7-x86_64.tar.gz

3.重新命名
將解壓後的資料夾重新命名為mysql

mv mysql-8.0.30-el7-x86_64/ mysql

4.建立儲存資料檔案
在重新命名後的mysql資料夾中建立data資料夾

mkdir mysql/data

5.設定使用者組並賦權
建立使用者組

groupadd mysql

建立使用者
-r:建立系統使用者
-g:指定使用者組

useradd -r -g mysql mysql

更改屬主和陣列

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

更改許可權

chmod -R 755 /usr/local/mysql/

6.初始化MySQL
進入MySQL的bin目錄

cd /usr/local/mysql/bin/

初始化

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

初始化完成後會列印一個隨機密碼,後面會用到。


7.配置引數檔案

vim /etc/my.cnf

配置檔案修改為以下內容,也可以根據自己需要設定引數。

[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

port = 3306
socket = /usr/local/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data
#lower_case_table_names=1
#如果要設定lower_case_table_names可以在初始化裡面設定 ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

配置後修改 /etc/my.cnf 的許可權為777

chmod 777 /etc/my.cnf

8.啟動MySQL

/usr/local/mysql/support-files/mysql.server start

9.設定軟連線,並重啟MySQL

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/mysql.sock /var/mysql.sock
service mysql restart

10.登入並更改密碼

[root@localhost bin]# mysql -uroot -p
Enter password: 輸入初始化隨機密碼

兩種改密方式二選一

alter user 'root'@'localhost' identified by '123456';
set password for root@localhost = '123456';

11.開放遠端連線

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges; //重新整理許可權

12.連線工具測試連線MySQL

如果伺服器本地可以連線,但是連線工具遠端連線不進去,則需要檢查一下防火牆是否放行3306埠,也可以暫時先關閉防火牆後重試。

關閉防火牆

systemctl stop firewalld

13.MySQL啟動和停止
CentOS6和CentOS7命令都可以使用。

啟動

service mysql start
systemctl start mysql

停止

service mysql stop
systemctl stop mysql

重啟

service mysql restart
systemctl restart mysql

檢視狀態

service mysql status
systemctl status mysql

三、設定開機自啟動(可選)
將服務檔案複製到 /etc/init.d下,並重新命名為mysqld

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

賦予可執行許可權

chmod +x /etc/init.d/mysqld

新增服務

chkconfig --add mysqld

顯示服務列表

chkconfig --list


注:如果看到mysqld的服務,並且3,4,5都是on的話則成功,如果是off,則執行

chkconfig --level 345 mysqld on


重啟系統

reboot

重啟後檢視mysql是否開機自啟動

ps -ef|grep mysql

相關文章