问题描述:

前言

Centos6.5重置mysql密码并设置允许远程连接

root密码忘记,重置mysql的root密码:

一、修改mysql的配置文件my.cnf

1.在[mysqld]的段中加上一句:skip-grant-tables

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
保存并且退出vi。

(或执行 mysqld_safe –skip-grant-tables &)

2.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]

3.登录并修改MySQL的root密码
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3 to server version: 3.23.56
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> use mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> UPDATE user SET Password = password ( ‘new-password’ ) WHERE
User = ‘root’ ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0

mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)

mysql> quit
Bye
4.将MySQL的登录设置修改回来
# vi /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除
保存并且退出vi。

5.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]

二、

停止mysql服务

/etc/init.d/mysqld stop

sudo mysqld_safe –skip-grant-table&

mysql

use mysql;

update user set password = password(‘yourpasswd’) where user = ‘root’;

flush privileges;

重启下mysql服务即可重新用新密码登录

/etc/init.d/mysqld restart

允许远程连接mysql

通过navicat连接MySQL的时候发生的这个错误
ERROR 1130: Host ***.***.***.*** is not allowed to connect
to this MySQL server
说明所连接的用户帐号没有远程连接的权限,只能在本机(localhost)登录。
需更改 MySQL 数据库里的 user表里的 host项
把localhost改称%

一、

登陆到MySQL ,首先 use MySQL;
按照别人提供的方式update的时候,出现错误。
MySQL> update user set host=’%’ where user = ‘root’;
ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’
然后查看了下数据库的host信息如下:
MySQL> select host from user where user = ‘root’;
+———————–+
| host |
+———————–+
| % |
| 127.0.0.1 |
| localhost.localdomain |
+———————–+
3 rows in set (0.00 sec)
host已经有了%这个值,所以直接运行命令:

MySQL>flush privileges;

二、

mysql> grant all privileges on *.* to ‘root’@’%’ withgrant option;

Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> selectuser.host from user;

+———–+————–+

| user| host|

+———–+————–+

| root| %|

| root| 127.0.0.1|

| repl_user | 192.168.1.52 |

+———–+————–+

3 rows in set (0.00 sec)

允许指定IP访问mysql

mysql> grant all privileges on *.*
to’root’@***.***.***.****identifiedby ‘123456’;
QueryOK, 0 rows affected (0.00 sec)

root密码忘记,重置mysql的root密码: 一、修改mysql的配置文件my.cnf
1.在[mysqld]的段中加上一句:ski…

图片 1

众所周知在默认情况下,我们安在阿里云上的mysql是不支持远程连接的,但是我们还需要通过一些工具来连接mysql,如navicat,这时就需要我们来修改mysql的远程连接了。

 ERROR 1130 (HY000): Host
‘localhost’ is not allowed to connect to this MySQL server

注意一点:当我们修改完mysql权限相关的操作后一定要刷新权限表,使配置生效,执行

首先网上的问题大部分是远程登陆MySQL,用户Ip没有权限,用本机登陆增加权限。但是我的就是本地都进不去。。。

flush privileges (主要)

安装的是官网的mysql免安装版  

环境前提:centos7 mysql5.7

安装mysql的艰辛历程:

1、首先登录位于阿里云上的mysql:

(1)免安装版,

mysql -u root -h localhost -p

免安装版要领两个,配置环境变量,配置my.ini,然后在dos系统中

**2、打开mysql数据库 **
(需要有能操作mysql这个库的权限,一般是mysql的root用户)

mysqld –install

use mysql

输入 mysqld --initialize-insecure --user=mysql; 初始化数据文件

3、这时我们有两种方式来进行修改:

然后再次启动mysql
然后用命令 mysql –u root –p 进入mysql管理界面(密码可为空)

第一种:是直接将原来的
user='root' and host='localhost'记录的host修改成%或指定的ip

修改密码:update mysql.user set
authentication_string=password(‘123456789′)
where user=’root’ and Host = ‘localhost’;

1)将host设置为%表示任何ip都能连接mysql

刷新权限:flush privileges;

update user set host=’%’ where user=’root’ and host=’localhost’

查看服务是否启动:net start mysql

  1. 当然也可以将host指定为某个ip

(2)安装可执行程序版,  

update user set host=’106.39.178.131′ where user=’root’ and
host=’localhost’

可执行程序版本一直点下一步即可,会有一个海豚一样的服务界面

  1. 执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效

发表评论

电子邮件地址不会被公开。 必填项已用*标注