1、卸载mysql
用如下方法检测。
yum list installed | grep mysql |
用如下方法卸载。
yum -y remove mysql-libs.x86_64 |
2、给CentOS添加rpm源,并且选择较新的源
wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm |
注意:如果出现了错误,
则在wget后面加上--no-check-certificate
wget --no-check-certificate dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm |
继续
yum localinstall mysql-community-release-el6-5.noarch.rpm yum repolist all | grep mysql |
目前显示的是只有mysql5.6的社区版可以下载。如果要下载5.6社区版则直接下载即可,否则如果要更新到mysql5.7,使用下面的命令:
yum-config-manager --disable mysql55-community yum-config-manager --disable mysql56-community yum-config-manager --enable mysql57-community-dmr yum repolist enabled | grep mysql |
3、安装mysql服务器
yum install mysql-community-server |
注意:如果出现了No more mirrors to try的信息
则需要重新执行
yum clean all |
yum makecache |
并再次尝试安装
yum install mysql-community-server |
或者考虑重启Windows
4、启动mysql
service mysqld start |
service mysqld status |
确保是running的状态。
如果不能启动MySQL,可能是跟SeLinux有关,编辑 /etc/selinux/config
vim /etc/selinux/config |
将SELINUX=enforcing改为SELINUX=disabled
然后重启虚拟机即可。
注意:centos7的启动命令是:
systemctl start mysqld |
注意与centos6的区别。
5、查看mysql是否自启动,并且设置开启自启动
chkconfig --list | grep mysqld |
需要确保3和5是on的,如果不是,则需要执行:
chkconfig mysqld on |
6、mysql安全设置
本来应该使用
mysql_secure_installation |
注意:
5.7.10现在已经不用mysql_secure_installation命令初始化密码了,又保存在临时文件里:/var/log/mysqld.log,可以用如下命令查找
grep 'temporary password' /var/log/mysqld.log |
所以这里的临时登陆密码为:zk9igueG.-Mw
使用该密码登陆。
mysql -h localhost --user=root -pzk9igueG.-Mw # 这个改为自己的临时登陆密码 |
如果找不到临时密码,则:
1 删除原来安装过的mysql残留的数据
rm –fr /var/lib/mysql |
2 重启mysqld服务
service mysqld start |
3 再去找临时密码
grep 'temporary password' /var/log/mysqld.log |
7、修改登陆密码
注意现在查看不了数据库
要修改登陆密码。
先退出mysql到Linux终端。
修改 /etc/my.cnf 文件,在 [mysqld] 小节下添加一行:skip-grant-tables=1
这一行配置让 mysqld 启动时不对密码进行验证
然后重启mysql
service mysqld restart |
使用root用户登陆mysql
mysql -h localhost --user=root -pzk9igueG.-Mw # 这个改为自己的临时登陆密码 |
切换到mysql数据库,更新user表
USE mysql; |
UPDATE user SET authentication_string = password('1234'), password_expired = 'N', password_last_changed = now() WHERE user = 'root'; |
注意:在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string。
执行flush privileges命令,刷新权限。
FLUSH PRIVILEGES; |
退出 mysql(exit命令),编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1 的内
重启 mysqld 服务
service mysqld restart |
再用新密码登录即可
mysql -h localhost --user=root -p1234 # 这个改为自己刚才设置的登陆密码 |
8、Windows上远程访问Linux中的mysql
假设Linux服务器的IP地址为:192.168.110.101
Windows的IP地址为:192.168.110.101
则需要在Windows上输入:
mysql -h 192.168.110.101 --user=root -p1234 |
暂时无法访问,是因为Linux上没有设备外部访问的权限。
在Linux上的MySQL终端输入
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION; FLUSH PRIVILEGES; |
注意:可能会显示
此时,需要查看密码的设置策略。
SHOW VARIABLES LIKE 'validate_password%'; |
首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可
SET GLOBAL validate_password_policy=LOW; |
当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可
SET GLOBAL validate_password_length=6; |
现在可以为 mysql 设置简单密码了,只要满足六位的长度即可:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; |
设置远程登陆密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; |
不要忘记刷新
FLUSH PRIVILEGES; |
退出到Linux终端后重启MySQL服务
service mysqld restart |
然后重新登陆MySQL,再查看用户表发现刚刚的用户新增进去了
USE mysql; SELECT user, authentication_string, Host FROM user; |
这时候就可以用任意一台电脑进行连接了,比如Windows上连接
mysql -h 192.168.110.101 --user=root -p123456 |
如果还是无法连接,检查是否防火墙屏蔽了mysql端口的远程访问权限。
尝试把之前写的Python程序中,连接的MySQL数据库改为Linux的IP地址。对应的登陆密码也需要修改。