版本:CentOS7、mysql8
第一步:获取mysql YUM源
进入mysql官网获取RPM包下载地址https://dev.mysql.com/downloads/repo/yum/
如图红色方框,右击复制链接地址
第二步:下载和安装mysql源
先下载mysql源安装包: wget 刚才复制的链接地址
例如: wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
如果提示wget命令找不到,先安装wget yum -y install wget 然后执行
安装mysql源 yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
需要注意的是localinstall后面的内容和前面链接里面的部分要对应
第三步:在线安装mysql
yum -y install mysql-community-server
第四步:启动mysql
systemctl start mysqld
第五步:设置开机自启动
systemctl enable mysqld
systemctl daemon-reload
mysql安装完成之后会生成一个默认密码在/var/log/mysqld.log文件中,要登录mysql,必须先获取这个密码。
获取文件:如果是打开文件后,在命令行下输入"/要搜索关键字"
如果是在没有打开文件的前提下就用命令:cat 文件名 | grep "关键字"
在这里就是:cat /var/log/mysqld.log | grep "password"
然后就可以查询出默认密码
查询出密码之后,接着登录mysql:mysql -u root -p
然后输入默认密码登录mysql
在登录mysql后紧接着需要做的就是修改mysql的密码,修改密码的方式有三种分别是
第一种:set password = password('要修改成的密码');
第二种:UPDATE user SET Password = 'new-password' WHERE User = '要修改成的密码';
第三种:ALTER USER 'root'@'localhost' IDENTIFIED BY '要修改成的密码';
其实在在的修改密码的方式并不是这几种,在不同的版本也会有不同的修改方法。
刷新:flush privileges ;
还有一种忘记密码后修改密码的方法
第一步:vim /etc/my.cnf
第二步:配置文件中添加skip-grant-tables后保存退出
第三步:重启mysql:systemctl restart mysql
通过上面三步就可以进行免密登录,登录之后可以通过第二种修改密码的方式修改密码,在修改后密码之后,继续进入文件my.cnf中,将之前加入的配置内容删除,然后重新启动mysql即可。
在修改mysql的密码的时候,有可能会出现密码不够复杂的提示,这种时候需要修改mysql的策略,不同的mysql版本修改方法稍有不用
mysql5.7的修改通过下面两条命令即可
set global validate_password_policy=0;
set global validate_password_length=1;
修改完策略之后,使用上面第二种方法修改密码即可;
mysql8版本的mysql可能不能成功,可能会提醒你'validate_password_policy' 变量不存在。解决方式
先修改一种满足策略的密码。例如Root_12root
在密码修改后可以查看validate_password密码验证插件是否安装
SHOW VARIABLES LIKE 'validate_password%';
通过查看 MySQL5.7 和 MySQL8.0 密码验证插件对比,可知两个版本中,变量名不一样。(*_password_policy 和 *_password.policy ),这个也是 问题原因所在。
mysql8调整密码验证规则:
set global validate_password.policy=0;
set global validate_password.length=1;
mysql开启远程连接
登录mysql数据库之后:use mysql;
第一步:查看当前用户select user,host from user;
第二步:允许root用户远程访问
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
其中
root是用户名 mysql默认的是root password是密码自己设置 %表示任意主机,也可以指定ip地址
如果出现错误
那么将mysql数据库user表里的root用户的host改成% 使用命令
update user set host='%' where user='root';
再次执行代码
GRANT ALL ON *.* TO 'root'@'%'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql\_native\_password BY '你的数据库密码';
之后使用远程连接即可