整理了一下菜鸟级MySQL常用操作。主要是数据库创建,帐号创建及修改密码等。
登录MySQL命令行
-
mysql命令可以指定用户名及密码
$mysql -u username -p password
-
CentOS或Redhat也可以用root身份登录
数据库管理
-
创建新的UTF8编码的数据库
mysql> CREATE DATABASE `testdb1` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;
-
修改已有数据库的默认字符集
mysql> use testdb1; mysql> alter database testdb1 character set utf-8;
-
选择需要操作的数据库
mysql> USE testdb1;
-
删除数据库(慎用)
mysql> SHOW DATABASES;
-
列出所有表
mysql> show tables;
-
显示数据表结构
mysql> describe 表名;
-
修改表名
mysql> ALTER TABLE table_name RENAME TO new_table_name;
-
删除数据表 (慎用)
mysql> drop table 表名;
数据库用户帐号管理
-
使用GRANT命令创建新帐号,允许操作指定数据库的所有权限
-
权限可以包括:SELECT,INSERT,UPDATE,DELETE,CREATE,DROP, 也可以用ALL PRIVILEGES代表所有操作权限,关键字 “PRIVILEGES” 可以省略
-
数据库名及表名都可以用通配符*,分别代表所有数据库及所有表。但是一般不推荐创建能操作所有数据库的超级用户。
-
客户端主机IP可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。
-
例如:
mysql> GRANT SELECT,UPDATE ON testdb1.table1 TO myuser@'localhost' IDENTIFIED BY 'mypassword'; mysql> GRANT ALL PRIVILEGES ON testdb1.* TO myuser@'%' IDENTIFIED BY 'mypassword';` mysql> GRANT ALL PRIVILEGES ON testdb1.* TO myuser@'192.168.0.0/255.255.0.0' IDENTIFIED BY 'mypassword';
-
-
查看数据库用户权限
- 查看当前用户的权限:
mysql> SHOW GRANTS;
- 查看其他用户的权限:
mysql> SHOW GRANTS FOR otheruser@'%';
- 查看当前用户的权限:
-
撤销已经赋予给 MySQL 用户的权限
REVOKE 跟 GRANT 的语法差不多,只需要把关键字 “TO” 换成 “FROM” 即可:
mysql> REVOKE ALL ON *.* FROM myuser@localhost;
-
查看所有的用户
mysql> SELECT USER,HOST,PASSWORD FROM mysql.user;
-
查看所有用户的所有权限
首先生成所需要的SQL语句,然后分别执行
mysql> SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') AS query FROM user;
-
删除用户
直接使用SQL语句,对user表进行数据删除。如:
mysql> DELETE FROM mysql.user WHERE User="phplamp" AND Host="localhost"; mysql> flush privileges;
注意该表的为‘User’和‘Host’的组合主键。通过指定这两个字段的值,确认一条唯一数据。
-
修改某用户密码
-
方法一:通过set password这条SQL语句设置
mysql> set password for 'myuser'@'localhost' = password('新密码');
-
-
方法二:直接更新user表的数据
``` mysql>update mysql.user set password=password('新密码') where User="myuser" and Host="localhost"; mysql> flush privileges;