一、下載
你可以從 MySQL 官方下載地址 下載所需的 MySQL 安裝包。
二、環境準備
1. 查看 MySQL 是否存在
使用以下命令查看系統中是否已經安裝了 MySQL:
rpm -qa|grep -i mysql
2. 清空 /etc/
目錄下的 my.cnf
執行以下命令刪除 my.cnf
文件:
[root@localhost ~]# rm -rf /etc/my.cnf
3. 刪除 mariadb
使用 yum
命令刪除 mariadb:
[root@localhost ~]# yum -y remove mariadb
4. 清空帶有 mysql 的所有文件
使用 find
命令查找并刪除所有包含 mysql
的文件:
[root@localhost ~]# find / -name "*mysql*" -exec rm -rf {} \;
5. 檢查并安裝依賴庫
查看是否安裝了 MySQL 依賴庫 libaio
,如果沒有安裝則進行安裝:
[root@localhost ~]# yum list installed |grep libaio
libaio.x86_64 0.3.109-13.el7 @anaconda
若未安裝,執行以下命令安裝:
yum -y install libaio
6. 解壓 MySQL 壓縮包并更名
解壓 MySQL 壓縮包:
tar xvJf mysql-8.0.41-linux-glibc2.17-x86_64.tar.xz
附注:tar
命令參數解釋:
-x
:解開已有的歸檔文件-v
:顯示詳細的過程-J
:使用xz
壓縮或解壓歸檔文件-f
:指定歸檔文件名
重命名解壓后的文件夾:
mv mysql-8.0.41-linux-glibc2.17-x86_64 mysql-8.0.41
7. 移動項目文件
將解壓并重命名后的 MySQL 文件夾移動到 /usr/local/mysql/
目錄下:
[root@localhost ~]# cp -r mysql-8.0.41 /usr/local/mysql/mysql-8.0.411
8. 創建 mysql 組和用戶
為了滿足生產環境服務器對 root
用戶的限制,需要創建 mysql
組和用戶:
# 創建 mysql 組
groupadd mysql
# 創建 mysql 用戶
useradd -g mysql mysql
示例:
[root@localhost ~]# useradd -r -s /sbin/nologin mysql
[root@localhost ~]# id mysql
uid=997(mysql) gid=995(mysql) 組=995(mysql)
創建一個文件:
[root@localhost ~]# mkdir /usr/local/mysql/mysql-8.0.411/mysql-files
修改權限:
[root@localhost ~]# chown mysql:mysql /usr/local/mysql/mysql-8.0.411/mysql-files
[root@localhost ~]# chmod 750 /usr/local/mysql/mysql-8.0.411/mysql-files/
給解壓的 MySQL 文件夾及創建的 data
文件夾修改用戶及用戶組權限:
chown -R mysql:mysql /usr/local/soft/mysql/
三、設置 MySQL 配置文件 my.cnf
使用 vim
編輯器打開并編輯 /etc/my.cnf
文件:
[root@chen mysql]# vim /etc/my.cnf
配置內容如下:
[mysqld]
# 設置 MySQL 服務監聽端口,默認 3306
port=3306
# 設置 MySQL 服務器綁定的 IP 地址,可以設置為自己本機 IP
bind-address=0.0.0.0
# 設置 MySQL 數據庫用戶
user=mysql
# 數據庫文件路徑
basedir=/usr/local/mysql/mysql-8.0.41
# 數據庫數據目錄,存儲數據庫文件的路徑
datadir=/usr/local/mysql/mysql-8.0.41/data
# 設置 MySQL 服務器使用的套接字文件路徑
socket=/usr/local/mysql/mysql-8.0.41/mysql.sock
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
# 設置每個連接的默認字符集
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
lower_case_table_names = 1
# 配置 MySQL 的自動擴展參數
innodb_autoextend_increment=64
log-error=/usr/local/mysql/mysql-8.0.41/logs/mysql.log
pid-file=/usr/local/mysql/mysql-8.0.41/mysql.pid[mysqld_safe]
# 設置指定存放進程 ID 的文件
log-error=/usr/local/mysql/mysql-8.0.4/logs/mysql.log
pid-file=/usr/local/mysql/mysql-8.0.4/mysql.pid
# log-error=/var/log/mariadb/mariadb.log
# pid-file=/var/run/mariadb/mariadb.pid
[client]
socket = /usr/local/mysql/mysql-8.0.4/mysql.sock
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
四、Mysql 初始化
Linux 中的 MySQL 默認是區分表名大小寫的,如果你安裝的是 MySQL 8,需要在數據庫初始化時設置不區分大小寫,否則初始化后在配置文件中設置并重啟時會報錯。
使用 mysql
的 bin
下面的 mysqld
腳本進行初始化:
/usr/local/mysql/mysql-8.0.41
/bin/mysqld --defaults-file=/usr/local/soft/mysql/my.cnf --user=mysql --basedir=/usr/local/mysql/mysql-8.0.41 --datadir=/usr/local/soft/mysql/data --lower-case-table-names=1 --initialize
示例:
[root@localhost ~]# /usr/local/mysql/mysql-8.0.4/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.4/mysql-8.0.40
2024-08-05T02:12:23.829793Z 0 [System] [MY-013169] [Server] /usr/local/mysql/mysql-8.0.4/bin/mysqld (mysqld 8.0.33) initializing of server in progress as process 3849
2024-08-05T02:12:23.841538Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-08-05T02:12:24.709625Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-08-05T02:12:25.810204Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: v,es=69BKU25
判斷是否初始化成功
[root@localhost ~]# ls /usr/local/mysql/mysql-8.0.4/
出現 data
表示初始化成功。
設置 ssl 安全加密連接
[root@localhost ~]# cd /usr/local/mysql/mysql-8.0.41/
[root@localhost mysql]# ls ./bin/*ssl*
./bin/mysql_ssl_rsa_setup
[root@localhost mysql]# ./bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/mysql-8.0.4/data
[root@localhost mysql]# ls ./data/
auto.cnf #ib_16384_0.dblwr #innodb_temp public_key.pem undo_002
ca-key.pem #ib_16384_1.dblwr mysql server-cert.pem
ca.pem ib_buffer_pool mysql.ibd server-key.pem
client-cert.pem ibdata1 performance_schema sys
client-key.pem #innodb_redo private_key.pem undo_001
其他配置
[root@localhost ~]# ls /usr/local/mysql/mysql-8.0.41/support-files
mysqld_multi.server mysql-log-rotate mysql.server
五、啟動并登錄 MySQL,設置 MySQL 開機自啟動
加入到系統服務并啟動 mysql
cp /usr/local/mysql/mysql-8.0.41/support-files/mysql.server /etc/init.d/mysql
修改 mysql 自啟服務配置
vim /etc/init.d/mysql
啟動服務
service mysql start
登錄 mysql
/usr/local/mysql/mysql-8.0.41/bin/mysql -u root -p
登錄成功后會提示你重置密碼,修改密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'uacsapp';
FLUSH PRIVILEGES; # 刷新
退出:
quit
重啟服務:
service mysql restart
再次登陸:
/usr/local/mysql/mysql-8.0.41/bin/mysql -u root -p
輸入剛修改的密碼,按回車鍵。到此,MySQL 已經安裝完成。
環境路徑配置
[root@localhost ~]# vim /etc/profile
在文件中添加以下內容:
export PATH=$PATH:/usr/local/mysql/mysql-8.0.4/
使配置生效:
[root@localhost ~]# source /etc/profile
設置開機自啟動(方法一)
添加服務列表的方式,放置到 /etc/rc.d/init.d
中:
# copy 并重命名
cp /usr/local/mysql/mysql-8.0.41/support-files/mysql.server /etc/rc.d/init.d/mysql
# 復制成功后我們需要給賦予權限
chmod +x /etc/init.d/mysql
# 添加為服務:
chkconfig --add mysql
# 查看服務列表
chkconfig --list
看到 mysql
服務的 3、4、5 狀態為開或者為 on
則表示成功。如果是關或者 off
則執行以下命令:
chkconfig --level 345 mysqld on
重啟計算機:
reboot