本文在CentOS7通用二進制方式安裝MySQL 8.0.28
-
下載安裝包
image.png 點擊
Download下載mysql-8.0.28-el7-x86_64.tar.gz-
點擊
No thanks, just start my download直接下載也可以在
CentOS7用wget直接下載[root@Centos ~]# wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.28-el7-x86_64.tar.gz[root@node1 ~]# wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.28-el7-x86_64.tar.gz --2023-11-22 11:31:25-- https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.28-el7-x86_64.tar.gz Resolving cdn.mysql.com (cdn.mysql.com)... 23.37.218.50, 2600:1417:4400:8ae::1d68, 2600:1417:4400:8b6::1d68 Connecting to cdn.mysql.com (cdn.mysql.com)|23.37.218.50|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 833555286 (795M) [application/x-tar-gz] Saving to: ‘mysql-8.0.28-el7-x86_64.tar.gz’ 100%[==========================================================================>] 833,555,286 4.68MB/s in 4m 7s 2023-11-22 11:35:33 (3.22 MB/s) - ‘mysql-8.0.28-el7-x86_64.tar.gz’ saved [833555286/833555286] -
把下載好的
mysql-8.0.28-el7-x86_64.tar.gz上傳至服務(wù)器上傳完成后就可以看到如下結(jié)果:
[root@node1 ~]# ls mysql-8.0.28-el7-x86_64.tar.gz -
通過
rpm -qa | grep mariadb命令查看mariadb的安裝包[root@node1 ~]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64 -
通過
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps命令裝卸mariadb[root@node1 ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps -
通過
rpm -qa | grep mariadb命令再次查看mariadb的安裝包[root@node1 ~]# rpm -qa | grep mariadb [root@node1 ~]# #說明已經(jīng)卸載完成檢查mysql的rpm包,有的話全刪除
rpm -qa |grep -i mysql# -i表示忽略大小寫
rpm -e --nodeps ...# 依次挨個刪除
刪除mysql相關(guān)的配置【my.cnf】和目錄【mysql】find / -name mysql # 查找mysql的命令 rm -rf ... #刪除命令,依次挨個刪除 -
創(chuàng)建用戶和組
#創(chuàng)建一個用戶組:mysql groupadd mysql #用戶 (用戶名/密碼)【創(chuàng)建一個系統(tǒng)用戶:mysql,指定用戶組為mysql】 useradd -r -g mysql mysql #檢查用戶組、用戶是否存在 groups mysql[root@node1 ~]# groupadd mysql [root@node1 ~]# useradd -r -g mysql mysql [root@node1 ~]# groups mysql mysql : mysql [root@node1 ~]# -
解壓
mysql安裝包,并將解壓后生成的文件夾進行重命名[root@node1 ~]# ls mysql-8.0.28-el7-x86_64.tar.gz [root@node1 ~]# tar -zxvf mysql-8.0.28-el7-x86_64.tar.gz [root@node1 ~]# ls mysql-8.0.28-el7-x86_64 mysql-8.0.28-el7-x86_64.tar.gz [root@node1 ~]# mv mysql-8.0.28-el7-x86_64 mysql [root@node1 ~]# ls [root@node1 ~]# ls mysql mysql-8.0.28-el7-x86_64.tar.g 在將
mysql文件創(chuàng)建移至/usr/local目錄
[root@node1 ~]# mv mysql /usr/local/
[root@node1 ~]# ls /usr/local/mysql/
bin docs include lib LICENSE man README share support-files
#說明已經(jīng)把mysql的文件全部移至/usr/local
在/usr/local/mysql目錄下新增data目錄作為后續(xù)存放mysql數(shù)據(jù)用
[root@node1 ~]# mkdir /usr/local/mysql/data
-
設(shè)置權(quán)限
[root@node1 local]# cd /usr/local/ [root@node1 local]# chown -R mysql:mysql /usr/local/mysql/ [root@node1 local]# [root@node1 local]# chmod -R 755 /usr/local/mysql/ -
配置mysql環(huán)境變量
[root@node1 local]# vim /etc/profile在打開的文件末尾增加如下的內(nèi)容。
export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HOME/bin:$PATH使環(huán)境變量生效:
[root@node1 local]# source /etc/profile -
設(shè)置mysql配置文件my.cnf
如存在默認/etc/my.cnf,先把默認/etc/my.cnf重命名或刪除
CentOS7默認會有一個/etc/my.cnf文件,為了不影響安裝,可以直接刪除或重命名
mv /etc/my.cnf /etc/my.cnf.bak 或 rm /etc/my.cnf[root@node1 local]# vim /etc/my.cnf/etc/my.cnf內(nèi)容如下:[mysql] # 設(shè)置mysql客戶端默認字符集 default-character-set = utf8mb4 [mysqld] #設(shè)置3306端口 port = 3306 # 設(shè)置mysql的安裝目錄 basedir = /usr/local/mysql # 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄 datadir = /usr/local/mysql/data socket = /tmp/mysql.sock #日志 log-error = /usr/local/mysql/data/mysql.log pid-file = /usr/local/mysql/data/mysql.pid # 允許最大連接數(shù) max_connections = 1000 #數(shù)據(jù)庫默認字符集, 主流字符集支持一些特殊表情符號(特殊表情符占用4個字節(jié)) character-set-server = utf8mb4 #數(shù)據(jù)庫字符集對應一些排序等規(guī)則,注意要和character-set-server對應 collation-server = utf8mb4_general_ci #設(shè)置client連接mysql時的字符集,防止亂碼 init_connect = 'SET NAMES utf8mb4' # 創(chuàng)建新表時將使用的默認存儲引擎 default-storage-engine = INNODB lower_case_table_names = 1 max_allowed_packet = 16M [client] port = 3306 socket = /tmp/mysql.sock default-character-set = utf8mb4 -
設(shè)置mysql服務(wù)為開機啟動
創(chuàng)建軟鏈接
[root@node1 local]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld賦予執(zhí)行權(quán)限
[root@node1 local]# chmod +x /etc/init.d/mysqld添加mysqld服務(wù)
[root@node1 local]# chkconfig --add mysqld查看服務(wù)列表來驗證是否添加成功
[root@node1 local]# chkconfig --list Note: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overridden by native systemd configuration. If you want to list systemd services use 'systemctl list-unit-files'. To see services enabled on particular target use 'systemctl list-dependencies [target]'. mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off -
初始化mysql
[root@node1 local]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data -
啟動mysql服務(wù)
[root@node1 local]# systemctl start mysqld查看是否啟動
[root@node1 local]# ps -ef | grep mysql #就看到mysqld進程即為已經(jīng)啟動 -
通過
cat /usr/local/mysql/data/mysql.log | grep password命令查看數(shù)據(jù)庫的密碼image.png在該例中,密碼為
cpJ,yAPV#4wx,即可以通過該命令登錄mysql 通過
mysql -uroot -p敲回車鍵進入數(shù)據(jù)庫登陸界面
[root@node1 data]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.28
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
- 通過
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'命令來修改密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> exit;
在此修改密碼為123456為例,根據(jù)自身實際情況設(shè)置密碼
- 通過 exit; 命令退出 MySQL,然后通過新密碼再次登陸
mysql> exit;
Bye
[root@Centos mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.24 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
-
通過以下命令,進行遠程訪問的授權(quán)
create user 'root'@'%' identified with mysql_native_password by '123456'; grant all privileges on *.* to 'root'@'%' with grant option; flush privileges;mysql> create user 'root'@'%' identified with mysql_native_password by '123456'; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on *.* to 'root'@'%' with grant option; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> -
通過
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;命令修改加密規(guī)則,MySql8.0 版本 和 5.0 的加密規(guī)則不一樣,而現(xiàn)在的可視化工具只支持舊的加密方式。mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.01 sec) -
通過 flush privileges; 命令刷新修該后的權(quán)限
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) -
通過
exit;命令退出 MySQLmysql> exit; Bye 自此就可以用Navicat鏈接數(shù)據(jù)庫,如果鏈接不成功就看一下檢查防火墻。

