有时候为了方便会直接使用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