mysql 设置远程访问

前置条件

#mysql  已经注册为服务,已经启动
#检查mysql服务状态,如果为disabled 或者未设置为服务需要启动 设置为服务(为了开机启动)并启动它 
#检查mysql状态 centos
7+
systemctl status mysql
# 设置为服务(开机启动)
systemctl enable mysql
# 启动mariadb
systemctl start mysql

 使用root 用户连接mysql

如果未设置 root 密码可以使用如下方式登陆

#> mysql

 如果已 为mysql root 用户设置了密码,使用如下方式登录

mysql -u root -p

创建用户

1.mysql>CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';  --如果你要创建一个公网可以访问的用户,可以去掉@localhost 或者将localhost该为公网ip  

2.mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user1'@'localhost';

OR

mysql>GRANT ALL ON *.* TO 'user1'@'localhost';

finally
mysql>FLUSH PRIVILEGES;

收回用户权限

revoke all on *.* from user1@localhost;

 修改密码

set password for 'root'@'ip_address' = password('xxx');  

查看用户访问权限

 查询用户表命令:select User,authentication_string,Host,Password from user; 

查看某个用户的权限

mysql> show grants for root@localhost;

权限

说明

CREATE

Create_priv

创建数据库和表

DROP

Drop_priv

抛弃(删除)数据库和表

GRANT OPTION

Grant_priv

数据库、表或保存的程序

REFERENCES

References_priv

未使用

ALTER

Alter_priv

修改表和索引

DELETE

Delete_priv

INDEX

 

Index_priv

Alter_priv

创建或抛弃索引

INSERT

Insert_priv

向表中插入新行

SELECT

Select_priv

检索表中的记录

UPDATE

Update_priv

修改现存表记录

CREATE VIEW

Create_view_priv

视图

SHOW VIEW

Show_view_priv

视图

ALTER ROUTINE

Alter_routine_priv

保存的程序

CREATE ROUTINE

Create_routine_priv

保存的程序

EXECUTE

Execute_priv

保存的程序

FILE

File_priv

读或写服务器上的文件

CREATE TEMPORARY TABLES

Create_tmp_table_priv

服务器管理

LOCK TABLES

Lock_tables_priv

服务器管理

CREATE USER

Create_user_priv

服务器管理

PROCESS

Process_priv

查看服务器中执行的线程信息或杀死线程

RELOAD

Reload_priv

重载授权表或清空日志、主机缓存或表缓存

REPLICATION CLIENT

Repl_client_priv

服务器管理

REPLICATION SLAVE

Repl_slave_priv

服务器管理

SHOW DATABASES

Show_db_priv

服务器管理

SHUTDOWN

Shutdown_priv

 关闭服务器

SUPER

Super_priv

服务器管理

修改密码

mysqladmin -u root password '19740415'

Mysql的端口是否正确
通过netstat -ntlp 查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。

检查用户权限是否正确
mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。

查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉 需要注掉 报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111)

sudo gedit /etc/mysql/my.cnf 

#skip-external-locking

#bind-address        = 127.0.0.1

skip-name-resolve

查看iptables是否停掉,没关的情况下,无法连接
通过:service iptables stop临时关闭。
报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)

Trouble shooting

如果意外收回了root用户的所有权限

如果你删除了你的root用户错误地可以做一件事:

  1. 停止MySQL服务
  2. mysqld_safe --skip-grant-tables &
  3. 类型mysql -u root -p然后按回车。
  4. 输入您的密码
  5. 在MySQL命令行中输入:use mysql;

然后执行以下查询:

UPDATE user SET select_priv ='Y', insert_priv='Y' , update_priv='Y', delete_priv= 'Y',
create_priv='Y', grant_priv='Y', lock_tables_priv='Y',
DROP_PRIV='Y',
RELOAD_PRIV='Y',
SHUTDOWN_PRIV='Y',
PROCESS_PRIV='Y',
FILE_PRIV='Y',
REFERENCES_PRIV='Y',
INDEX_PRIV='Y',
ALTER_PRIV='Y',
SHOW_DB_PRIV='Y',
SUPER_PRIV='Y',
CREATE_TMP_TABLE_PRIV='Y',
EXECUTE_PRIV='Y',
REPL_SLAVE_PRIV='Y',
REPL_CLIENT_PRIV='Y',
CREATE_VIEW_PRIV='Y',
SHOW_VIEW_PRIV='Y',
CREATE_ROUTINE_PRIV='Y',
alter_routine_priv='Y',
create_user_priv='Y',
event_priv='Y',
trigger_priv='Y',
create_tablespace_priv='Y'
WHERE host='localhost' AND User = 'root'

然后重新启动mysqld。

reference documents

http://blog.csdn.net/sin90lzc/article/details/7648711

http://www.iteye.com/topic/418151

转载请注明出处, 更多博文请访问https://www.cnblogs.com/guoapeng/
原文地址:https://www.cnblogs.com/guoapeng/p/3961167.html