系统:CentOS 6.5 64位
之前在mysql 官网上下载了源文件进行安装过,后来出现了
之前在centos6.5 安装mysql的时候安装了5.1 的版本,因为在其他地方用到的是5.7 所以那个时候进行了版本的升级,实际上就是把之前的卸载掉,然之后重新安装。
废话不多说了,直接进入主题吧、
第一步是确认自己的yum mysql源是什么版本的
使用命令:rpm -qa|grep mysql
如果出现的是5.7 那么恭喜你,你的数据源是最新的。
2. 更新yum源到最新
[root@localhost ~]# yum update
3. 安装mysql yum repo
[root@localhost ~]# rpm -Uvh mysql57-community-release-el6-7.noarch.rpm
4 . 安装mysql服务
[root@localhost ~]# yum install mysql-community-server
一直按yes就可以了。
5 完成后启动服务
[root@localhost ~]# service mysqld start
6 启动后,查看安装后自动生成的密码(5.7以后的版本会自动生成一个随机密码)
查看的命令是
截图中红色圈圈的位置就是随机密码。
你可以用这个密码登录进去,然之后修改密码。
如果你登录进去了就可以不用看下面的了,我试过每次用这个密码登录到提示我错误。
所以只能用第二种修改mysql root密码的方法了
之前在5.6之前的版本使用了:
# /etc/init.d/mysql stop # mysqld_safe --user=mysql --skip-grant-tables --skip-networking & # mysql -u root mysql UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost'; 这种方法修改了密码之后也可以,不过会报错,具体的我也不清楚,这篇博客是我后来才写上去的。所以忘记了什么错误了。
还有一种办法,不用管初始密码是什么,在 root 用户下,修改 my.cnf 文件,跳过密码直接登录。待登入 mysql ,再用 mysql 命令行修改密码。这种方法也适用于忘记 mysql 密码,需要修改密码的情况 $ vi /etc/my.cnf [mysqld]配置区域添加:让MySQL免密登陆 skip-grant-tables $ service mysqld restart
此时可直接登录,然后修改密码。 $ /usr/local/mysql/bin/mysql -uroot mysql> updateuserset authentication_string=password('mypassword')whereuser='root'; mysql> quit; 登出 mysql,修改 my.cnf,去掉添加的 skip-grant-tables ,重启 mysqld 服务,使用新密码登录。
下面是关于我遇到的一些错误:
登录mysql之后无论怎么操作都是报: ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 分析原因: 这个问题是否奇怪,因为明明是刚刚用密码登录了mysql服务器。怎么要重置密码呢?因为密码太简单了,不符合MySQL的安全要求。
解决方法: (1) 设置复杂一点的密码 mysql> SET PASSWORD = PASSWORD('123@mysql');
(2)如果只想设置简单密码需要修改两个全局参数: mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1;
使用Nacivat远程登录不了mysql: 用户IP限制问题 update mysql.user set Host="%" where user='root' and Host ='localhost'; %:表示所有的ip都可以访问。
如果想让多个ip访问的话可以为一个MySQL用户设置多个ip访问:
比如说我只想让192.168.0.56 和 192.168.0.156 这两个ip访问。
GRANT ALL ON *.* to root@'192.168.0.56' IDENTIFIED BY 'your-root-password';
GRANT ALL ON *.* to root@'192.168.0.156' IDENTIFIED BY 'your-root-password';
还有一个如果ip是设置了公网的ip的话,那么内网的ip都可以访问。