mysql常用命令
链接服务器
mysql -u username -p -h hostname -P port -D database_name
显示所有数据库
show databases;
选中库
use test;
显示所有表
show tables;
创建数据库
create database db_name character set utf8;
删除数据库
DROP DATABASE database_name;
# 使用IF EXISTS选项,可以避免在尝试删除不存在的数据库时出现错误:
DROP DATABASE IF EXISTS database_name;
查看建库语句
show create database 库名;
查看建表语句
show create table 表名;
用户授权
mysql> grant all privileges on dbname.* to 'yangxin'@'%' identified by 'yangxin123456';
添加权限(和已有权限合并,不会覆盖已有权限)
GRANT Insert ON your database.* TO username@`localhost`;
删除权限
REVOKE Delete ON your database.* FROM username@`host`;
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
identified by:指定用户的登录密码
with grant option:表示允许用户将自己的权限授权给其它用户
可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。
查看变量
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
删除用户
方法一:使用DROP USER语句删除用户
DROP USER 'username'@'localhost';
这种方法会直接删除指定的用户,并且不能撤销。要小心使用。
方法二:使用REVOKE语句撤销用户的所有权限,然后使用DELETE语句从mysql.user表中删除用户记录
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'localhost';
FLUSH PRIVILEGES;
DELETE FROM mysql.user WHERE User = 'username' AND Host = 'localhost';
这种方法先撤销用户的所有权限,然后刷新权限,最后从mysql.user表中删除用户记录。这样可以确保用户被彻底删除。
修改密码
方法一:用set password命令
set password for 用户名@localhost = password('新密码'); 一定不要忘记最后面的分号,例如:我们把密码改成成123:
set password for root@localhost = password('123');
方法二:用mysqladmin命令
利用mysqladmin,我们不需要先登录,但是需要直到原来的密码;我们可以直接修改,修改密码格式为:
mysqladmin -u用户名 -p旧密码 password 新密码,注意,password前面没有 - ,例如:我们再把密码改成123456:
mysqladmin -uroot -p123 password 123456