安装MySQL

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地址。对应的登陆密码也需要修改。

上一篇:python操作csv文件


下一篇:搭建CDH批量执行的脚本