查看系统中是否安装有MariaDB
CentOS7 默认安装有MariaDB,与将要安装的MySQL冲突。
查询系统中是否有MariaDB
rpm -qa | grep mariadb
卸载MariaDB
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
强制卸载MariaDB
如果卸载时出现如下提示
error: Failed dependencies:
......
则需要强制卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
PS:同理可以删除系统原有的MySQL
安装MySQL
下载MySQL
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
解压
tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
依次安装如下内容
rpm -ivh mysql-community-common-5.7.12-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.12-1.el6.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.12-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.12-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.12-1.el6.x86_64.rpm
安装时如果出现类似警告
warning: mysql-community-server-5.7.21-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.21-1.el7.x86_64
说明没有安装libaio,可使用yum进行安装。
# 查询libaio
yum list | grep libaio
# 安装
yum install libaio.x86_64
查看MySQL服务
systemctl status mysqld
此时mysqld的状态是:Active: inactive (dead)
启动MySQL
systemctl start mysqld
如果启动失败,可查看日志:/var/log/mysqld.log查找原因。
登录MySQL
mysql -uroot -p
这时通常会提示如下内容
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
因为MySQL生成了默认的密码
使用MySQL生成默认密码进行登录
在日志中查找默认密码
日志位置:/var/log/mysqld.log
tail -n1000 -f /var/log/mysqld.log | grep 'password'
2019-04-08T07:12:39.878046Z 1 [Note] A temporary password is generated for root@localhost: uqzW1aJtWf.b
这里的:[uqzW1aJtWf.b]就是生成的密码,使用此密码即可进行登录:
注意,有时候生成的密码,最后一位是“.”。
登录后修改默认密码
alter user 'root'@'localhost' identified by 'NEW_PASSWORD';
- NEW_PASSWORD就是新设置的密码,退出后,就可使用新的密码登录。
- 新密码有强度要求, 参考:https://www.cnblogs.com/ivictor/p/5142809.html
编码设置
在/etc/my.cnf下添加
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
## 可自定义为其他端口
port=12345
- 注意参数名和添加位置的不同。
- 修改完端口,可能要修改防火墙规则和云主机的安全组规则。
问题
user表不存在
启动失败,在日志:/var/log/mysqld.log中提示
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
可尝试如下操作:
- 删除/var/lib/mysql目录下的文件
- 使用命令:
mysqld --initialize --user=mysql --console --explicit_defaults_for_timestamp
这会在/var/lib/mysql目录下重新生成文件,同时,会在/var/log/mysqld.log中生成默认密码。
参考
http://blog.csdn.net/liyf155/article/details/61419623
https://www.cnblogs.com/ivictor/p/5142809.html