上篇文章我们写了在服务器上安装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:
可以尝试,插入数据,然后从服务器看,是否有了数据,嗯哼!
插入数据后,可以从服务器看看是否真的提交数据更改了:
好啦,此篇教程就到此为止啦,后续会有详细的具体应用到实际项目中的数据库应用,哈哈,文采不行,看不懂的就将就吧哈哈哈,也可以留言,虽然我不一定会看,哈哈哈哈哈哈。。