mysql怎么设置远程连接
默认情况下,MySQL只允许本地登录,如果要开启远程连接,则需要修改/etc/mycnf文件
vim /etc/mycnf
注释这一行:bind-address=127001 ==> #bind-address=127001
保存退出。
mysql -uroot -p123456
为需要远程登录的用户赋予权限:
复制代码 代码如下:
mysql> GRANT ALL PRIVILEGES ON TO root@"%" IDENTIFIED BY "123456";
mysql> flush privileges;
远程登录命令:
mysql -h 223492130 -uroot -p(-h后跟的是要登录主机的ip地址)
========本地登录远程mysql
mysql -h IP地址 -P 3306 -u root -p
========创建用户
CREATE USER ‘hyeos’@’%’ IDENTIFIED BY ‘hyeosnet’;
说明:
%:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
hyeosnet:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
示例:
CREATE USER ‘hyeos’@’localhost’ IDENTIFIED BY ‘hyeosnet’;
CREATE USER ‘hyeos’@’19216838110_’ IDENDIFIED BY ‘hyeosnet’;
CREATE USER ‘hyeos’@’%’ IDENTIFIED BY ‘hyeosnet’;
CREATE USER ‘hyeos’@’%’ IDENTIFIED BY ”;
CREATE USER ‘hyeos’@’%’;
注意:
创建用户后,该用户只能连接到数据库服务器,但并没有操作该数据库服务器的权限。
========授权
GRANT privilegesxxx ON databasenametablename TO ‘hyeos‘@’%‘
说明:
privilegesxxx:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如
示例:
GRANT SELECT, INSERT ON DbXXXuser TO ‘hyeos’@’%’;
GRANT ALL ON TO ‘hyeos’@’%’;
GRANT ALL ON Dbname TO ‘hyeos’@’%’;
//注意:
授权之后需要用户重连MySQL,才能获取相应的权限。
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privilegesxxx ON databasenametablename TO ‘hyeos’@’%’ WITH GRANT OPTION;
设置与更改用户密码
SET PASSWORD FOR ‘hyeos’@’%’ = PASSWORD(‘newhyeosnet’);
如果是当前登陆用户用:
SET PASSWORD = PASSWORD(“newhyeosnet”);
示例:
SET PASSWORD FOR ‘hyeos’@’%’ = PASSWORD(“hyeosnet”);
撤销用户权限
REVOKE privilegexxx ON databasenametablename FROM ‘hyeos’@’%’;
示例:
REVOKE SELECT ON FROM ‘hyeos’@’%’;
注意:
假如你在给用户’hyeos’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON db_nameuser TO ‘hyeos’@’%’,则在使用REVOKE SELECT ON FROM ‘hyeos’@’%’;命令并不能撤销该用户对db_name数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON TO ‘hyeos’@’%’;则REVOKE SELECT ON db_nameuser FROM ‘hyeos’@’%’;命令也不能撤销该用户对db_name数据库中user表的Select权限。
具体信息可以用命令SHOW GRANTS FOR ‘hyeos’@’%’; 查看。
=======删除用户
DROP USER ‘hyeos’@’%’;
=======刷新系统权限表
flush privileges;
=======重设密码及登录主机
alter user ‘root’@’localhost’ identified by ‘XXXXXX’;
=======远程导出:
mysqldump -P [端口] -h [IP] -u [用户] -p db_name>db_namesql
例如:
mysqldump -P 3306 -h 1921681224 -u root -p db_name>db_namesql
=======远程导入:
mysql -h[IP] -P[端口] -u[用户] -p db_name<db_namesql p=""> </db_namesql>
例如:
mysql -h 1921681224 -P 3306 -u root -p db_name < db_namesql
附:
远程导出数据库: mysqldump -h[hosname] -u[user_name] -p[password] –default-character-set=[char_set_name] [db_name] > [save_path]
=======导入数据库时一定要注意字符集是否相同,如果字符集不同会报错,重建数据库改为相同的字符集即可
0条评论