Linux / MySQL · 2020年7月4日

centos7 mysql安装配置教程

一、安装前环境准备

1、首先先检查一下 CentOS 7 是否已经安装过 MySQL 数据库,使用如下命令进行检查:

[root@slave01 ~]# rpm -qa | grep mysql

从以上输出结果可以看出,当前系统并没有安装 MySQL。如果有则使用下面命令进行删除:

[root@slave01 ~]# rpm -e --nodeps mysql-*

2、查找所有 mysql 对应的文件夹:

[root@slave01 ~]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
/usr/share/mysql

删除相关文件及目录:

[root@slave01 ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql /usr/share/mysql

查看是否已经删除:

[root@slave01 ~]# find / -name mysql
  1. 从官网下载用于 Linux 系统的 MySQL5.7.29 安装包:
[root@slave01 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

或者可以利用其他下载工具下载以后上传到 CentOS 系统上。

  1. 检查 mysql 用户组和用户是否存在,如果没有,则进行创建:
[root@slave01 local]# cat /etc/group | grep mysql
[root@slave01 local]# cat /etc/passwd |grep mysql
[root@slave01 local]# groupadd mysql
[root@slave01 local]# useradd -r -g mysql mysql

二、安装 MySQL

  1. 在执行 wget 命令的目录下或你的上传目录下找到 MySQL 安装包:mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz,执行如下解压命令:
[root@slave01 ~] tar -xzvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
  1. 解压完成后,可以看到 /usr/local/ 目录下多了一个解压文件,并将文件夹名称修改为 mysql
[root@slave01 local]# ll
drwxr-xr-x. 9 root root 129 Jul  4 01:41 mysql-5.7.29-linux-glibc2.12-x86_64
[root@slave01 local]# mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
  1. /usr/local/mysql 目录下创建 data 目录:
[root@slave01 mysql]# mkdir data
  1. 更改 mysql 目录下所有的目录及文件夹所属的用户组和用户,以及权限:
[root@slave01 mysql]# chown -R mysql:mysql /usr/local/mysql
[root@slave01 mysql]# chmod -R 755 /usr/local/mysql
  1. 编译安装并初始化 mysql,请记住初始化输出日志末尾的密码(数据库管理员临时密码)
[root@slave01 mysql]# cd /usr/local/mysql/bin/
[root@slave01 bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql
# 初始化以后日志记录末尾输出的信息如下:
2020-07-04T08:52:05.398162Z 1 [Note] A temporary password is generated for root@localhost: T<N(K2#cfewe
  1. T<N(K2#cfewe 这是数据库管理员临时密码,等一会儿登录 mysql 时需要用到。
  1. 编辑配置文件 /etc/my.cnf,添加配置如下:
[root@slave01 bin]# vi /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
  1. 启动 mysql 服务:
[root@slave01 bin]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.Logging to '/usr/local/mysql/data/slave01.err'.
 SUCCESS!
  1. 给 MySQL 添加软连接,并重启 mysql 服务:
[root@slave01 bin]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@slave01 bin]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@slave01 bin]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
  1. 登录 mysql,修改密码(密码为步骤5生成的临时密码:T<N(K2#cfewe
[root@slave01 ~]# mysql -u root -p
Enter password: # 在此处输出步骤5生成的密码,不会显示

mysql> set password for root@localhost = password('123456');
  1. 设置允许远程连接 MySQL 数据库:
mysql> use mysql;

mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
  1. 给 MySQL 设置开机自动启动:
# 将服务文件拷贝到init.d下,并重命名为mysql
[root@slave01 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 赋予可执行权限
[root@slave01 ~]# chmod +x /etc/init.d/mysqld
# 添加服务
[root@slave01 ~]# chkconfig --add mysqld
# 显示服务列表
[root@slave01 ~]# 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