前言
linux环境安装mysql5.7,在mysql5.7版本中已经不需要/etc/my.cnf就能启动,所以在这里就省去了配置my.cnf的步骤,并且使用默认安装路径/usr/local/mysql。
安装步骤
- 清理安装环境
# 卸载系统自带的Mariadb
[root@localhost ~]# rpm -qa|grep mariadb
# 如果存在就卸载
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 删除/etc/my.cnf和/etc/mysql
- 安装必要的库
MySQL has a dependency on the libaio library. Data directory initialization and subsequent server startup steps will fail if this library is not installed locally. If necessary, install it using the appropriate package manager.
# 查询库
[root@localhost ~]# yum search libaio
# 安装库
[root@localhost ~]# yum install libaio
- 解压压缩包并设置软链接
# 解压
[root@localhost local]# tar zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
# 软链接
[root@localhost local]# tar zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
- 准备mysql初始化环境
# 创建mysql用户和用户组
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -r -g mysql -s /bin/false mysql
# 创建mysql-files及设置权限
[root@localhost local]# cd mysql
[root@localhost mysql]# mkdir mysql-files
[root@localhost mysql]# chown mysql:mysql mysql-files
[root@localhost mysql]# chmod 750 mysql-files
- 初始化mysql
[root@localhost mysql]# bin/mysqld --initialize --user=mysql
这一步骤执行后能得到一个密码,记录一下之后需要用到。就是上图红框中的部分。
# 继续初始化
[root@localhost mysql]# bin/mysql_ssl_rsa_setup
[root@localhost mysql]# bin/mysqld_safe --user=mysql &
# 初始化到此结束
- 其他可选操作
# 作为服务启动
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
[root@localhost mysql]# chkconfig --add mysql.server
# 将mysql命令添加到环境变量中(临时)
[root@localhost mysql]# export PATH=$PATH:/usr/local/mysql/bin
# 将mysql命令添加到环境变量中(永久)
[root@localhost mysql]# vim /etc/profile
# 在文件末尾增加
export PATH=$PATH:/usr/local/mysql/bin
- FAQ
密码太复杂
[root@localhost ~]# mysql -uroot -p
Enter password: [这里输入在初始化时得到的密码]
mysql> set PASSWORD = PASSWORD('[修改后的密码]');
Query OK, 0 rows affected, 1 warning (0.00 sec)
远程连不上
# 登陆后选择数据库:mysql
mysql> use mysql;
# 查看已拥有的用户
select host, user from user;
# 更新root用户可远程登陆
update user set host = '%' where user = 'root';
修改了root用户对应的host为%还是连接不上
# 在防火墙中开启3306端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
其他连接不上的问题
重启mysql服务
如果还不行就百度
参考
《2.2 Installing MySQL on Unix/Linux Using Generic Binaries》- https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
《centos7 + mysql5.7 tar包解压安装》- https://www.cnblogs.com/dadadechengzi/p/6723686.html