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