本文在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
上传至服务器上传完成后就可以看到如下结果:
[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 ~]# #说明已经卸载完成
检查mysql的rpm包,有的话全删除
rpm -qa |grep -i mysql
# -i表示忽略大小写
rpm -e --nodeps ...
# 依次挨个删除
删除mysql相关的配置【my.cnf】和目录【mysql】find / -name mysql # 查找mysql的命令 rm -rf ... #删除命令,依次挨个删除
-
创建用户和组
#创建一个用户组:mysql groupadd mysql #用户 (用户名/密码)【创建一个系统用户: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
文件创建移至/usr/local
目录
[root@node1 ~]# mv mysql /usr/local/
[root@node1 ~]# ls /usr/local/mysql/
bin docs include lib LICENSE man README share support-files
#说明已经把mysql的文件全部移至/usr/local
在/usr/local/mysql
目录下新增data
目录作为后续存放mysql数据用
[root@node1 ~]# mkdir /usr/local/mysql/data
-
设置权限
[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环境变量
[root@node1 local]# vim /etc/profile
在打开的文件末尾增加如下的内容。
export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HOME/bin:$PATH
使环境变量生效:
[root@node1 local]# source /etc/profile
-
设置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
内容如下:[mysql] # 设置mysql客户端默认字符集 default-character-set = utf8mb4 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir = /usr/local/mysql # 设置mysql数据库的数据的存放目录 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 # 允许最大连接数 max_connections = 1000 #数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节) character-set-server = utf8mb4 #数据库字符集对应一些排序等规则,注意要和character-set-server对应 collation-server = utf8mb4_general_ci #设置client连接mysql时的字符集,防止乱码 init_connect = 'SET NAMES utf8mb4' # 创建新表时将使用的默认存储引擎 default-storage-engine = INNODB lower_case_table_names = 1 max_allowed_packet = 16M [client] port = 3306 socket = /tmp/mysql.sock default-character-set = utf8mb4
-
设置mysql服务为开机启动
创建软链接
[root@node1 local]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
赋予执行权限
[root@node1 local]# chmod +x /etc/init.d/mysqld
添加mysqld服务
[root@node1 local]# chkconfig --add mysqld
查看服务列表来验证是否添加成功
[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服务
[root@node1 local]# systemctl start mysqld
查看是否启动
[root@node1 local]# ps -ef | grep mysql #就看到mysqld进程即为已经启动
-
通过
cat /usr/local/mysql/data/mysql.log | grep password
命令查看数据库的密码image.png在该例中,密码为
cpJ,yAPV#4wx
,即可以通过该命令登录mysql 通过
mysql -uroot -p
敲回车键进入数据库登陆界面
[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为例,根据自身实际情况设置密码
- 通过 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>
-
通过以下命令,进行远程访问的授权
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;
命令修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.01 sec)
-
通过 flush privileges; 命令刷新修该后的权限
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
-
通过
exit;
命令退出 MySQLmysql> exit; Bye
自此就可以用Navicat链接数据库,如果链接不成功就看一下检查防火墙。