使用yum快速安装MySQL

有时候为了方便会直接使用yum安装MySQL,优点是比较方便简单,如果网速还不错的话也很快。

检测并卸载已有的MySQL

使用

rpm -qa | grep -i mysql
# 或者
yum list installed | grep -i mysql

命令检测是否有rpm安装的包,然后根据列表中显示的名称,使用

yum -y remove MySQL-*

命令卸载已经安装的MySQL。

配置包含MySQL的yum源

下载并安装mysql源

以CentOS 7下安装MySQL 5.7为例:

curl -LO http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm -y

CentOS 6下 MySQL 5.7的源地址为 http://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm,MySQL 5.6的源地址为:http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

使用yum安装MySQL

安装成功之后使用

yum repolist all | grep -i mysql

命令检测MySQL源是否安装成功,如果列表中出现 mysql*-community 即说明安装成功。

执行

yum install mysql-community-server -y

命令开始安装MySQL,因为需要下载所以时间有一些长。

配置MySQL

设置开机启动

使用

chkconfig --list | grep mysqld

检测mysqld服务的状态,只有2、3、4同时为on才表示开机启动,如果不是的话使用

chkconfig mysqld on

命令进行设置,最后执行 service mysqld start 启动MySQL。

CentOS7下面需要使用下面的方式进行设置:

# 安装服务
systemctl enable mysqld
# 启动服务
systemctl start mysqld
# 查看服务状态
systemctl status mysqld

设置root密码

执行 mysql_secure_installation 使用向导的方式设置root密码,非常人性化和方便。
如果出现下面的错误提示:

Connecting to MySQL server using password in '/root/.mysql_secret'
Error: Access denied for user 'root'@'localhost' (using password: NO)

表示没有操作的权限的话,可以通过

grep 'temporary password' /var/log/mysqld.log

命令查看MySQL生成的临时root密码,然后使用 mysql -uroot -p进行登录,然后通过

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
-- MySQL 5.7一下版本需要使用下面的命令:
GRANT ALL ON *.* to 'root'@'localhost' IDENTIFIED BY 'yourpassword';

修改root的密码。

如果还是无法登陆MySQL的话,可以执行

mysqld_safe --skip-grant-tables &

命令启动skip grant tables模式,这个时候root的密码为空,进入执行上述操作,记得最后杀掉上述MySQL进程。

修改 my.cnf 文件

yum安装完成之后会自动生成配置文件 /etc/my.cnf,在[mysqld]下面追加如下内容:

[mysqld]
# 设置默认的编码为utf-8
character_set_server=utf8
init_connect='SET NAMES utf8'

# 添加如下键值对, 0=LOW, 1=MEDIUM, 2=STRONG
validate_password_policy=0
# 禁用密码校验策略
validate_password = off

MySQL 5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于 8 位。如果不需要的话可以通过上面的配置信息进行关闭。
设置完成之后保存并重启MySQL生效。

常见问题

删除旧的MySQL数据

如果旧的MySQL也是使用rpm或yum方式安装的话,会发现重新安装之后依然启用旧的数据,默认情况下MySQL的数据目录为 /var/lib/mysql,也可以登录MySQL之后执行 select @@datadir;命令进行查看。
删除旧的数据目录之后,再重新启动MySQL即可,里面的数据会自动生成。

可以通过客户端连接MySQL但JDBC无法连接

删除 /etc/my.cnf 配置文件,使用默认配置启动进行尝试。


参考资料:
CentOS 6 下 Yum 安装 MySQL 5.7 备忘
CentOS 7 下 Yum 安装 MySQL 5.7
CentOS 7 更改 MySQL 数据目录
Centos6快速安装mysql 5.6
MySQL root密码忘记,原来还有更优雅的解法!
java.sql.SQLException: Connections could not be acquired from the underlying database

发表评论

电子邮件地址不会被公开。 必填项已用*标注