腾讯云 CentOS 7.4 安装 Mysql

一、前言:

CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用MariaDB代替了,MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

二、安装Mysql

1.  检查MariaDB是否安装,如果安装,那么全部卸载。使用 yum list installed | grep mariadb 检查MariaDB是否安装。

腾讯云 CentOS 7.4 安装 Mysql

2.   卸载MariaDB: 使用 yum -y remove mariadb* 命令。

腾讯云 CentOS 7.4 安装 Mysql

3.下载mysql的YUM源: wget -P /home/install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm (wget命令参考:http://man.linuxde.net/wget)

腾讯云 CentOS 7.4 安装 Mysql

4. 安装mysql 的YUM源:由于我们是下载到/home/install目录下,所以先切换到该目录下:cd  /home/install 

安装mysql的YUM源:rpm -ivh mysql57-community-release-el7-11.noarch.rpm

腾讯云 CentOS 7.4 安装 Mysql

5. 检查mysql的YUM源是否安装成功:

yum repolist enabled | grep "mysql.*-community.*" 

看到下图表示安装成功:

腾讯云 CentOS 7.4 安装 Mysql

6.     查看mysql版本,执行:yum repolist all | grep mysql  

可以看到 5.5, 5.6,8.0 版本是默认禁用的

腾讯云 CentOS 7.4 安装 Mysql

可以通过类似下面的语句来启动或禁用某些版本:
yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql56-community

或者通过修改vim /etc/yum.repos.d/mysql-community.repo文件,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0,然后再将5.6源的enabled=0改成enabled=1即可。

注意: 任何时候,只能启用一个版本。

7.     查看当前的启用的 MySQL 版本:yum repolist enabled | grep mysql

腾讯云 CentOS 7.4 安装 Mysql

8.     安装MySQL:     yum installmysql-community-server 安装过程中一直输入"y"就可以了,当出现下面的结果时,就代表mysql数据库安装成功了。

腾讯云 CentOS 7.4 安装 Mysql

三、测试mysql

1.     启动mysql服务:systemctl start mysqld

2.     登录进mysql (刚安装完是没有密码的):mysql –uroot 或者mysql

腾讯云 CentOS 7.4 安装 Mysql

注:此时可能会出现如下错误:解决方法参考(https://blog.****.net/a575553272/article/details/79724115或者参考xiam):

ERROR 1045(28000): Access denied for user 'root'@'localhost' (using password: NO)

可能用到的命令:

systemctl start mysqld   #启动mysqld

systemctl stop mysqld   #停止mysqld

systemctl restartmysqld    #重启mysqld

systemctl enablemysqld   #设置开机启动

systemctl statusmysqld    #查看 MySQL Server 状态

3.     防火墙设置

远程访问 MySQL, 需开放默认端口号 3306,

firewall-cmd --permanent --zone=public--add-port=3306/tcp

执行firewall-cmd--reload使最新的防火墙设置规则生效

注:新装的centos系统需要开启防火墙后在开放端口:

开启防火墙 :systemctl start firewalld  没有任何提示即开启成功。

四、 解决方法

ERROR 1045(28000): Access denied for user 'root'@'localhost' (using password: NO)

1.     停止mysql数据库:systemctl stop mysqld

2.     用以下命令启动MySQL,以不检查权限的方式启动:

mysqld --skip-grant-tables &

此时可能会报另一个错误:2018-02-01T02:52:55.093724Z 0 [ERROR] Fatal error: Please read"Security" section of the manual to find out how to run mysqld asroot!

执行命令:mysqld--user=root --skip-grant-tables &

3.     登录mysql:mysql -uroot或mysql

4.     更新root密码

mysql5.7以下版本:

UPDATE mysql.user SETPassword=PASSWORD('123456') where uSER='root';

mysql5.7版本:UPDATE mysql.userSET authentication_string=PASSWORD('123456') where USER='root'

5.     刷新权限:flush privileges;

6.     退出mysql:exit或quit

7.     使用root用户重新登录mysql

mysql-uroot –p

Enterpassword:<输入新设的密码123456>


参考:

Centos7.4 安装mysql

https://blog.****.net/qq_32786873/article/details/78843362

mysql登陆28000 错误:

https://jingyan.baidu.com/article/5552ef47f509bd518ffbc933.html

wget命令:

http://man.linuxde.net/wget