MySQL安装启动成功后,首先我们需要创建数据库,然后创建一个用户去操作这个数据库。
1、创建数据库
// 登录MySQL客户端:mysql -h [ip] -u[username] -p[password]
C:\Users\Administrator>mysql -h 127.0.0.1 -uroot -p"root"
// 创建数据库,指定字符集
mysql> CREATE DATABASE `apollodb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
// 查看数据库是否创建成功
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| apollodb |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)//如果库名写错了,当然如果库名创建错了,也可以使用命令进行删除,然后重新创建:
mysql> drop database apollodb;
2、MySQL添加用户、删除用户、更改密码及授权
2.1、添加用户
跟以往版本不同,MySQL5.7 mysql.user表没有password字段,这个字段改成了 authentication_string;
这里我们使用命令进行创建用户:
// 创建了一个名为:dev001 密码为:123456 的用户
mysql> create user 'dev001'@'localhost' identified by '123456';
// 注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。
// 如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。
// 也可以指定某台机器ip可以远程登录。
// ##### 实际开发用“%”方式 #####
mysql> create user 'dev001'@'%' identified by '123456';
- username:你将创建的用户名。
- host:指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录。
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。
2.2、删除用户
// 删除用户“dev001”
mysql> drop user dev001@localhost ;
// 若创建的用户允许任何电脑登陆,删除用户如下
mysql> drop user dev001@'%';
2.3、更改密码
// 方法1,密码实时更新;修改用户“dev001”的密码为“1qaz@WSX”
mysql> set password for dev001=password('1qaz@WSX');// 方法2,需要刷新;修改用户“dev001”的密码为“1qaz@WSX”
mysql> update mysql.user set password=password('1qaz@WSX') where user='dev001'
// 刷新权限
mysql> flush privileges;
2.4、授权
// 策略一:授予用户kvstore通过外网IP对数据库“apollodb”的全部权限
mysql> grant all privileges on apollodb.* to 'dev001'@'%' identified by '1qaz@WSX';
// 刷新权限
mysql> flush privileges;// 策略二:授予用户“dev001”通过外网IP对于该数据库“apollodb”中表的创建、修改、删除权限,以及表数据的增删查改权限
mysql> grant create,alter,drop,select,insert,update,delete on apollodb.* to dev001@'%';
// 刷新权限
mysql> flush privileges;// 策略三:授权dev001用户拥有所有数据库的某些权限
mysql> grant select,delete,update,create,drop on *.* to dev001@'%' identified by '1qaz@WSX';
// 刷新权限
mysql> flush privileges;
privileges:用户的操作权限,如select,delete,update,create,drop等;如果要授予所有的权限可使用all;% 表示对所有非本地主机授权,不包括localhost。
2.5、查看用户权限
// 查看用户“dev001”
mysql> show grants for dev001;
+------------------------------------------------------+
| Grants for dev001@% |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dev001'@'%' |
| GRANT ALL PRIVILEGES ON `apollodb`.* TO 'dev001'@'%' |
+------------------------------------------------------+
2 rows in set (0.00 sec)
注意:修改完权限以后 一定要刷新服务,或者重启服务,刷新服务用:flush privileges;
最后用MySQL的dev001用户登录查看是否有对apollodb数据库的操作权限:
C:\Users\Administrator>mysql -h 192.168.0.200 -udev001 -p"1qaz@WSX"
mysql> mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| apollodb |
+--------------------+
2 rows in set (0.00 sec)mysql> show grants for dev001;
+------------------------------------------------------+
| Grants for dev001@% |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dev001'@'%' |
| GRANT ALL PRIVILEGES ON `apollodb`.* TO 'dev001'@'%' |
+------------------------------------------------------+
2 rows in set (0.00 sec)