在CentOS7中安装MySQL数据库

在CentOS7中安装MySQL数据库
yngcyMySQL 安装
本文基于 CentOS 7.9 系统进行安装。
1. 准备安装包
这里准备的是 mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
,并将其直接放在了 /root
目录下。
1 | [root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz |
注意这里的 glibc2.12
,是安装 MySQL 所需的的 glibc 版本,在安装之前先输入 rpm -q glibc
,查看本系统的 glibc 版本,安装的版本不能高于系统的版本,否则需要自行下载在配置(比较麻烦,不推荐)。
2. 卸载系统⾃带的 MARIADB
输入 rpm -qa|grep mariadb
检查是否有 mariadb,它会和 MySQL 冲突,如果没有则可以跳过此步骤。
输入如下命令卸载:
1 | [root@localhost ~]# yum -y remove mariadb-libs-5.5.68-1.el7.x86_64 |
3. 解压 MySQL 安装包
输入如下命令,将安装包解压至 /usr/local/
目录,并将目录重命名为 mysql
。
1 | [root@localhost ~]# tar -xJvf /root/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz -C /usr/local |
4. 创建 MySQL 用户和 MySQL 用户组
输入如下命令:
1 | [root@localhost ~]# groupadd mysql |
同时,新建 /usr/local/mysql/data
,便于后续配置,该文件夹用来存放 MySQL 的数据文件。
5. 修改 MySQL 目录的归属用户
输入如下命令:
1 | [root@localhost mysql]# chown -R mysql:mysql ./ |
6. 创建 MySQL 的配置文件
首先在 /etc
目录下新建 my.cnf
文件。
然后在该文件写入如下配置:
1 | [mysql] |
同时新建文件 /var/lib/mysql
,并求改其权限:
1 | [root@localhost ~]# mkdir /var/lib/mysql |
7. 安装 MySQL
首先进入刚才解压的目录,也就是 /usr/local/mysql
目录,执行如下命令:
1 | [root@localhost ~]# cd /usr/local/mysql |
记住这里的 MySQL 密码,待会儿登录数据库要用到。
8. 复制启动脚本到资源目录
❗注意:如果在你的服务器中已有
mysqld
服务,则将其改为其他名字即可解决冲突,例如改为mysqld2
,下面以mysqld
做演示。
执行如下命令进行复制:
1 | [root@localhost mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld |
然后打开 /etc/init.d/mysqld
,修改 basedir
和 datadir
的路径。
1 | basedir=/usr/local/mysql |
9. 设置 MYSQL 系统服务并开启⾃启
首先增加 mysqld
的服务控制脚本执行权限:
1 | [root@localhost mysql]# chmod +x /etc/init.d/mysqld |
将 mysqld
加入到系统服务:
1 | [root@localhost mysql]# chkconfig --add mysqld |
❗注意:如果你在这碰到了
... ERROR! The server quit without updating PID file
,一般是因为端口冲突,修改/etc/my.cnf
即可。
最后检查 mysqld
服务是否生效:
1 | [root@localhost mysql]# chkconfig --list mysqld |
这样就说明 mysqld
服务已经生效,在 2、3、4、5 运行级别随系统启动而自启,以后可以使用 service
命令控制 mysql
的开启与关闭。
10. 启动 MySQL
直接执行如下命令:
1 | [root@localhost mysql]# service mysqld start |
11. 将 MySQL 的 bin 目录加入到 PATH 环境变量
为了方便以后在任意目录下都可以使用 MySQL 提供的命令,需要修改 ~/.bash_profile
文件,直接在末尾追加如下信息:
1 | Mysql Config |
然后再执行 source ~/.bash_profile
使配置生效。
12. 登录 Mysql
以 root 账户登录 mysql,根据上文提示的密码进行登录。
1 | [root@localhost mysql]# mysql -u root -p |
13. 修改 root 账户的密码
输入如下命令进行修改,这里将密码修改为 “123456”,可自行修改成其他密码。
1 | mysql> alter user user() identified by "123456"; |
14. 设置远程主机登录
首先输入如下命令:
1 | mysql> use mysql; |
这里使用 Navicat 进行测试。
输入虚拟机的 ip 地址(使用 ip addr
查看),然后输入 root 和刚才重新设置的密码,但是发现连接不上,这是因为我们还没有关闭防护墙。
输入命令关闭防火墙:
1 | [root@localhost mysql]# systemctl stop firewalld |
如果是在服务器上,例如阿里云、腾讯云,则添加对应的防火墙规则。
查看防火墙规则命令:
1 | sudo firewall-cmd --list-port |
添加端口规则后,再去阿里云控制台添加规则才能成功。
最后就可以看到连接成功了。