Centos 安装MysqL问题解决
一、正常安装
我们使用YUM源安装MysqL,所以在安装前需要做一下准备工作:
查看下最新的mysql版本 (不需要点击下载)
下载MysqL源安装包,从官网可以看到目前(2017.10.23)最新版本是MysqL57-community-release-el7-11.noarch.rpm。
wget http://dev.MysqL.com/get/MysqL57-community-release-el7-11.noarch.rpm
安装MysqL源 (中间需要输入Y 确认)
yum localinstall MysqL57-community-release-el7-11.noarch.rpm
检查源是否安装成功
yum repolist enabled | grep "MysqL.*-community.*"
如果出现下图则表示源安装成功
如果需要更改安装MysqL的版本,则可以修改
/etc/yum.repos.d/MysqL-community.repo
源。改变默认安装的MysqL版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。改完之后的效果如下所示:
安装MysqL(中间需要确定 输入Y)
yum install MysqL-community-server
安装完成后,MysqL也就安装成功了
安装好后,启动MysqL服务
systemctl start MysqLd
查看MysqL启动状态:
systemctl status MysqLd
设置开机启动
systemctl enable MysqLd systemctl daemon-reload
第一次安装好后,需要修改root本地密码
MysqL安装完成之后,在/var/log/MysqLd.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录MysqL进行修改:MysqL 语句是分号结束!!!
grep 'temporary password' /var/log/MysqLd.log MysqL -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword'; set password for 'root'@'localhost'=password('MyNewPassword');
因为MysqL5.7默认安装了安全插件,有一些对密码的校验,所以如果你的密码不符合要求,就会报错,当然如果你只是测试使用 或者自己玩,则可以通过修改密码校验的规则
set global validate_password_policy=0; set global validate_password_length=1;
上面的具体含义可以网上查到。
如果需要设置远程登陆,则需要下面设置
使用root登陆MysqL
赋予远程登陆权限
允许root用户在任何地方进行远程登录,并具有所有库任何操作权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; ##然后刷新授权表 FLUSH PRIVILEGES;
允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限:
GRANT select,insert,update,delete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword"; ##然后刷新授权表 FLUSH PRIVILEGES;
-
REVOKE privileges ON 数据库[.表名] FROM user-name;
-
MysqL -u root -p”youpassword”
进行授权操作:
GRANT select,insert,update,delete ON TEST-DB TO test-user@”172.16.16.152” IDENTIFIED BY “youpassword”;
再进行删除授权操作:
REVOKE all on TEST-DB from test-user;
最后从用户表内清除用户:
DELETE FROM user WHERE user=”test-user”;
重载授权表:
FLUSH PRIVILEGES;
退出MysqL数据库:
exit
如果此时还不能进行远程登陆,并且用telnet IP 3306 成功,则可能是防火墙禁用了3306端口修改防火墙规则,或者如果你只是玩玩或者测试用,则可以关闭防火墙。
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
如果是linux和windows混合使用,则需要设置linux上的MysqL不区分大小写
-
default-character-set=utf8