之前曾在服务器上安装配置过MariaDB,毕竟MySQL作为Oracle的产品随时存在闭源的风险,Red Hat Enterprise Linux / CentOS 7.0从支持MySQL切换到MariaDB作为默认数据库管理系统。其中MariaDB的默认配置文件位置在 /etc/my.cnf
。
下面主要就是记录一下安装配置过程以及遇到的一些坑。
准备条件
- 服务器 : CentOS Linux release 7.3.1611
- MySQL安装包 : mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
安装配置
我是把安装包下载到 /root
目录下的。
-
解压:
[root@VM_16_16_centos ~]#
tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -
更名:
[root@VM_16_16_centos ~]#
mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql -
将解压后的文件夹即
mysql
移动到/opt/
目录下:官方建议解压后的文件放置在/usr/local
下,然后现在新版的Linux是建议第三方软件放在/opt
下,两者都可以。但我是放在/opt
目录下的,毕竟这是第三方软件,不是系统自带的。[root@VM_16_16_centos ~]#
mv mysql /opt/ -
添加用户:当时我并没有添加用户,随后就遇到了一些坑。该添加的用户是用来运行
mysqld
命令的。- 切换到
/opt
目录:[root@VM_16_16_centos ~]#
cd /opt/` - 创建用户组:
[root@VM_16_16_centos opt]#
groupadd mysql - 向
mysql
用户组中添加mysql
用户:由于该用户只是为了所有权的目的,没有登录的目的。因此创建的该用户没有登录服务器的权限。[root@VM_16_16_centos opt]#
useradd -r -g mysql -s /bin/false mysql
- 切换到
-
安装数据库:在新版的数据库中
mysql_install_db
命令已被deprecated,所以我们使用mysqld
命令。- 切换到
bin
目录:[root@VM_16_16_centos opt]#
cd mysql/bin/ - 初始化安装:我是把数据文件放在
/data/mysql
目录下的,所以[root@VM_16_16_centos bin]#
mkdir -p /data/mysql,然后运行[root@VM_16_16_centos bin]#
./mysqld --initialize --user=mysql --basedir=/opt/mysql/ --datadir=/data/mysql/
结果如下:
初始密码为: lFDklwoy+3lh
- 切换到
-
自从5.7.18后开始不在二进制包中提供
my-default.cnf
文件,不需要该配置文件也能正常运行。 -
将
mysql.server
拷贝到系统服务中并重命名为mysqld
:[root@VM_16_16_centos bin]#
cp …/support-files/mysql.server /etc/init.d/mysqld。 -
如果你这时候运行
/etc/init.d/mysqld start
命令的话,会报如下的错:
这时候需要我们vim /etc/init.d/mysqld
,如图所示:
-
如果这个时候运行
/etc/init.d/mysqld start
仍然报错的话,如下图所示:
那么就是/etc/my.cnf
这个配置文件在捣鬼了。我们将它重命名为/etc/my.cnf.back.old
:[root@VM_16_16_centos bin]#
mv /etc/my.cnf /etc/my.cnf.back.old -
再次输入
/etc/init.d/mysqld start
就能成功启动数据库服务器了。 -
最后我们来配置一下环境变量:
12. 大功告成了,这其中遇到了不少的坑,在此记录一下!