MySQL数据库远程连接、创建新用户、设置权限、更改用户密码

上篇文章我们写了在服务器上安装MySQL,可以随时远程连接,我们这次讲如何创建一个新的用户,给予权限,并且实现远程连接!

1、新建用户 创建ssh用户,密码是ssh。localhost 就是本地连接,即127.0.0.1。

%用于远程连接,即任意ip都可以链接。

MySQL -u root -p CREATE USER 'ssh'@'localhost' IDENTIFIED BY 'ssh'; #本地登录 CREATE USER 'ssh'@'%' IDENTIFIED BY 'ssh'; #远程登录 quit 先退出,在测试 mysql -ussh -p #测试是否创建成功

更改用户密码:

方法1: 用SET PASSWORD命令

首先登录MySQL。 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123'); 方法2:用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p123456 password 123 方法3:用UPDATE直接编辑user表 首先登录MySQL。 mysql> use mysql; mysql> update user set password=password('123') where user='root' and host='localhost'; mysql> flush privileges;

2、为用户授权

a.授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by '密码'; 

b.登录MYSQL,这里以ROOT身份登录:

mysql -u root -p

c.为用户创建一个数据库(test ):

create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

创建后用show databases;查看数据库:

d.授权ssh用户拥有test数据库的所有权限:

grant all privileges on `test`.* to 'ssh'@'localhost' identified by 'ssh'; grant all privileges on `test`.* to 'ssh'@'%' identified by 'ssh'; flush privileges; #刷新系统权限表 #授予用户在所有数据库上的所有权限 grant all privileges on *.* to 'ssh'@'localhost' identified by 'ssh'; grant all privileges on *.* to 'ssh'@'%' identified by 'ssh';

注意:MySQL中字符要求很严格,必须用英文小写字符!

如果新建用户不能创建数据库可以试试后两行权限赋予代码,

授予用户在所有数据库上的所有权限:

#授予用户在所有数据库上的所有权限
grant all privileges on *.* to 'ssh'@'localhost' identified by 'ssh'; 
grant all privileges on *.* to 'ssh'@'%' identified by 'ssh';
#查看用户本身权限
show grants;

3、删除用户

mysql -u root -p Delete FROM mysql.user Where User=”test” and Host=”localhost”; flush privileges; drop database testDB;

删除账户及权限:

drop user 用户名@’%’; drop user 用户名@ localhost;

附:有可能出现的问题:

使用以下命令行删除账户:

delete from user where user='账户名';

出现:

 ERROR 1046 (3D000): No database selected 错误:没有选中数据库。

因为是直接使用 SQL 语句的方式来删除账户,所以必须先选择 mysql 自身的数据库:

use mysql;

好了,现在用ssh账户登陆,开始建表!

create table test(

test_id INT NOT NULL AUTO_INCREMENT,

test_date DATE,

PRIMARY KEY ( test_id )

);

好了,建表之后可以查看表:

这就很对,很nice了嘛,^_^,下面进入实战,用SQLyog远程连接试试!

各单位战斗人员请注意,这个时候需要用命令查看数据库所用端口,这个很重要哦,远程连接数据库时候需要的!而且前面咱们授权ssh账户远程登录时,一定要有成功授权提示哦!

show variables  like 'port';

并且,最重要的一点就是,一定要开放服务器的3306端口号,不然都被防火墙拦截了,哈哈哈哈。?!

好了,这个时候打开SQLyog开始测试:

1 。新建链接:

2 。填空:

3 。测试连接,点击右下角测试连接,如果可以连接,会有这个提示:

如果连接不成功:一看是否给了账户远程连接权限 。二看填空的选项是否都正确。三看服务器防火墙是否拦截了远程端口,哈哈哈O(∩_∩)O哈哈~。

4 。点击连接,看看我们的数据库,里面有我们新建的表test:

可以尝试,插入数据,然后从服务器看,是否有了数据,嗯哼!

插入数据后,可以从服务器看看是否真的提交数据更改了:

好啦,此篇教程就到此为止啦,后续会有详细的具体应用到实际项目中的数据库应用,哈哈,文采不行,看不懂的就将就吧哈哈哈,也可以留言,虽然我不一定会看,哈哈哈哈哈哈。。

原文发布于微信公众号 - 浩Coding(gh_c4a2e63d2ca7)

原文发表时间:2019-05-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券