[MySQL]基本操作

说明:<>为必填;[]为选填;|为或者,多者选一

  1. 登录MySQL

1
mysql -u <username> -p [-h <hostname|hostip>]

例:

1
2
3
4
mysql -u root -p -h myhost.com
mysql -u root -p -h 192.168.1.101
mysql -u root -p
mysql -u myname -p
  1. 设置密码

方法一:

1
2
3
update User set Password=PASSWORD('<password>') where User='<username>';
# 设置完毕刷新权限
FLUSH PRIVILEGES;

例:

1
2
update User set Password=PASSWORD('woshimima') where User='root';
FLUSH PRIVILEGES;

方法二:

1
2
3
4
# 修改所有用户的密码,前提是拥有修改密码的权限
set password for '<usernmae>'@'<hostname|hostip>' = password('<password>');
# 修改当前登录用户密码
set password = password('<password>');
  1. 查看MySQL默认编码

1
show [global] variables like 'char%';

MySQL-基本操作-查看默认编码

  1. 查看MySQL是否区分大小写

1
show variables like '%case%';

MySQL-基本操作-查看是否区分大小写

  1. 修改数据库编码

1
alter database <databasename> CHARACTER SET <encoding>;

例:

1
alter database mydb CHARACTER SET utf8;
  1. 创建数据库

1
create database <databasename>;

例:

1
create database mydb;
  1. 新增用户

1
create user '<username>'@'<hostname|hostip>' identified by '<password>';

意义为:用户可以通过密码在<hostname|hostip>主机上进行登录到此MySQL。其中<hostname|hostip>的通配符为%,表明所有主机都能登录;为空时,表明登录不需要密码。

例:

1
2
3
4
create user 'myname'@'myclienthost.com' identified by 'woshimima';
create user 'myname1'@'192.168.1.102' identified by 'woshimima1';
create user 'myname2'@'%' identified by 'woshimima2';
create user 'myname3'@'%' identified by '';
  1. 删除用户

1
drop user '<username>'@'<hostname|hostip>';

例:

1
2
drop user 'myname'@'myclienthost.com';
drop user 'myname'@'%';
  1. 授权用户权限

1
grant <priviliege> on <databasename>.<tablename> to '<username>'@'<hostname|hostip>';

意义为:用户在<hostname|hostip>主机上登录后拥有对数据库中表的权限。其中的通配符为*,表明所有数据库的所有表;<hostname|hostip>的通配符为%,表明所有主机的登录情况。

常用的权限有:all、select、insert、update、delete、create、drop、index、alter、grant、references、reload、shutdown、process、file

例:

1
2
3
grant all on mydb.mytable to 'myname'@'myclienthost.com';
grant all on *.* to 'myname'@'%';
grant select on mydb.mytable to 'myname'@'myclienthost.com';

以上命令授权的用户不能给其他用户授权,如果想让该用户可以授权,用以下命令:

1
grant <priviliege> on <databasename>.<tablename> to '<username>'@'<hostname|hostip>' with grant option;
  1. 撤销用户权限

1
revoke <priviliege> on <databasename>.<tablename> from '<username>'@'<hostname|hostip>';

例:

1
2
3
revoke all on mydb.mytable from 'myname'@'myclienthost.com';
revoke all on *.* from 'myname'@'%';
revoke select on mydb.mytable from 'myname'@'myclienthost.com';
  1. 查看用户权限

1
show grants for '<username>'@'<hostname|hostip>';

例:

1
2
show grants for 'myname'@'myclienthost.com';
show grants for 'myname'@'%';
  1. 刷新权限

1
flush privileges;
  1. 查看MySQL支持的字符集

1
show char set;

(•̀ᴗ•́)و ̑̑

Share