本文主要记录如何在 Linux 中安装 MySQL。

环境

  • CentOS 7
  • MySQL 5.7.27

卸载已经安装了的 MySQL 或者 MariaDB

# 查看是否安装了 MariaDB
rpm -qa | grep mariadb
# 如果有就卸载
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64

下载 MySQL

官网链接:MySQL :: Download MySQL Community Server (Archived Versions)

选择版本以及操作系统

往下翻,找到

下载即可。

上传并解压

下载下来后使用 ftp 工具将压缩包上传到服务器的指定目录下。

上传成功后右边会出现 MySQL 的压缩包。MySQL 安装目录为 /usr/local/enviroment/mysql

回到 Linux 中输入以下命令:

cd /usr/local/enviroment/mysql/
ls -l

红色的文件即为刚刚上传的 MySQL 的压缩包, 蓝色的为稍后解压出来的文件夹。

然后进行解压:

tar -zxvf mysql-5.7.27-el7-x86_64.tar.gz

解压中,文件比较大,需要稍微等待一会儿。

解压完成后会出多来一个文件夹 mysql-5.7.27-el7-x86_64

为了方便将其重命名

mv mysql-5.7.27-el7-x86_64 mysql5.7.27

配置 MySQL

进入到 mysql安装目录中,可以看到初始目录是这样

  1. 创建一个 data 目录用于存放数据文件

  1. 创建系统用户组和用户
#查看所有用户组信息是否存在 mysql 组,不存在则创建,存在则直接新建用户
cat /etc/group
# 如果不存在则新建一个 msyql 组
groupadd mysql
# 查看是否存在 mysql 用户
cat /etc/passwd | grep mysql
# 没有则新建 msyql 用户
useradd -g mysql mysql

创建组后再次查看group文件发现有mysql组了。

没有mysql用户新建用户后再查看用户发现创建成功了。

  1. 修改 MySQL 安装目录的所有权(不是访问权限)
# 修改 MySQL 安装目录及其包含的所有文件所有权归 mysql 组中的 mysql 用户所有
chown -R mysql:mysql /usr/local/enviroment/mysql/mysql5.7.27/

可以看出更改后该文件夹所属的组以及用户已经变为 mysql 了。

  1. 初始化 MySQL 数据库
./mysqld --initialize --user=mysql --basedir=/usr/local//usr/local/enviroment/mysql/mysql5.7.27 --datadir=/usr/local/enviroment/mysql/mysql5.7.27/data

注意后面有初始密码,记下来!!!

这里我的初始密码为:czb&Mgn#W32X

注意到上面有个ERROR:[ERROR] Can't find error-message file '/usr/local/usr/local/enviroment/mysql/mysql5.7.27/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.

解决办法: 将源码文件夹中的 mysql.server 文件复制到 /etc/init.d/mysqld 中即可。

 cp ./support-files/mysql.server /etc/init.d/mysqld
  1. [可选步骤]配置 my.cnf

从版本 5.7.18 开始,MySQL 免安装版二进制包中就不包含该文件了,即不需要 my.cnf 文件也可以正常运行;my.cnf 文件中配置的选项会在命令行启动 MySQL 的时候作为参数进行启动, 如果只是单纯的搭建一个 MySQL 实例,可以直接忽略此步骤。如果是搭建 MySQL 主从环境则需要该文件。这里就是用默认的不进行配置。

  1. 修改 mysqld 文件
vim /etc/init.d/mysqld

按键盘 i 键进行编辑;

将上图中圈起来的地方改为你的 MySQL 安装目录以及前面创建的 data 目录;

然后按 Esc 退出编辑,再按 shift + :输入 wq! 保存并退出即可。

  1. 设置 MySQL 开机启动
cd /etc/init.d
chkconfig --add mysqld

至此 MySQL 就已经安装完毕了,接下来就是使用命令启动 MySQL。

  1. 启动 MySQL
service mysqld start

出现如下提示即为启动成功。

  1. 配置 MySQL 环境变量
vim /etc/profile

在文档的最后面添加如下内容,记住不要带空格!

别忘了将冒号后面的路径更改为你自己的安装路径!

export PATH=$PATH:/usr/local/enviroment/mysql/mysql5.7.27/bin

  1. 使配置文件立即生效
source /etc/profile
  1. 重启 MySQL 服务,并且使用默认的 root 用户登录

这里就需要用到前面记下来的初始密码了。

service mysqld restart

mysql -u root -p
# 注意:输入密码时不会显示,输入完成回车即可

登录成功命令行则会变为 mysql>

  1. 修改 root 用户的密码并且刷新。
mysql> alter user 'root'@'localhost' identified by '新密码';
Query OK, 0 rows affected (0.00 sec)

# MySQL 新设置用户或更改密码后需用 flush privileges 刷新 MySQL 的系统权限相关表
# 否则会出现拒绝访问,还有一种方法,就是重新启动 MySQL 服务器,来使新设置生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

此时mysql数据库只能在本机上使用 mysql 命令进行登录,还无法使用 navicat 等数据库可视化工具进行远程登录。

  1. 设置允许root用户远程连接数据库
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

最后还需要开放 3306 端口号或者关闭防火墙, 如果是阿里云/腾讯云服务器则设置安全组即可。

  1. 使用 SQLYog 测试连接成功!


前天遇到了小鹿,昨天是小兔子,今天是你。