snsdzjlz320

登录和退出

> mysql 

  -h 参数后面接hostname或者hostIP
  -P 参数后面接Mysql服务的端口号,通过指定的端口号来进行连接
  -u 参数后面接username用户名
  -p 参数会提示密码
  -e 参数可以可以直接加SQL语句,登录MYSQL服务器以后即可执行这个SQL语句,然后退出Mysql服务器
  DatabaseName 参数指明登录到哪一个数据库中,如果没有该参数,会直接登录到Mysql数据库中.然后可以使用USE命令来选择数据库

> quit;

 

创建用户

1. create user语句

> create user
    \'User-name\'@\'Host-name\'  (对应User表中的User和Host字段)
        
     IDENTIFIED BY  \'password\' (对应User表中的Password字段)  ||  IDENTIFIED BY \'PASSWORD(password)\'
   

2. insert into mysql.user(直接插入mysql.user表)

> insert into    
  mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject)
  values(\'Host-name\',\'User-name\',PASSWPRD(\'password\'),\'\',\'\',\'\');
> flush privileges;

 

删除用户

Methods-1

  > drop  user  \'username\'@\'hostname\';

 

Methods-2

  > delete  from  mysql.user  where  User=\'username\'  and Host=\'hostname\';

  > flush privileges;

 

查询所有用户信息

> select User,group_concat(Host) from mysql.user group by User having User!=\'\'; 
+---------+-----------------------------+
| User    | group_concat(Host)          |
+---------+-----------------------------+
| root    | localhost,centos2,127.0.0.1 |
| test1   | localhost                   |
| test2   | localhost                   |
| test2_1 | localhost                   |
| zabbix  | localhost                   |
+---------+-----------------------------+


> SELECT DISTINCT CONCAT(\'User: \'\'\',user,\'\'\'@\'\'\',host,\'\'\';\') AS query FROM mysql.user; +------------------------------+ | query | +------------------------------+ | User: \'root\'@\'127.0.0.1\'; | | User: \'\'@\'centos2\'; | | User: \'root\'@\'centos2\'; | | User: \'\'@\'localhost\'; | | User: \'root\'@\'localhost\'; | | User: \'test1\'@\'localhost\'; | | User: \'test2\'@\'localhost\'; | | User: \'test2_1\'@\'localhost\'; | | User: \'zabbix\'@\'localhost\'; | +------------------------------+ 9 rows in set (0.02 sec)

 

查询某个用户的所有权限

Methods-1

  > show  grants  for  \'hostname\'@\'hostname\' \G

 

Methods-2  

  > select  *  from  mysql.user  where  User=\'username\'  and  Host=\'hostname\' \G

> show grants for \'root\'@\'localhost\'\G 
*************************** 1. row ***************************
Grants for root@localhost: GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'localhost\' IDENTIFIED BY PASSWORD \'*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9\' WITH GRANT OPTION
1 row in set (0.00 sec)

> show grants for \'test1\'@\'localhost\'\G     
*************************** 1. row ***************************
Grants for test1@localhost: GRANT USAGE ON *.* TO \'test1\'@\'localhost\' IDENTIFIED BY PASSWORD \'*AD6EE75212922D967AF18D408481254CC164B39D\'
1 row in set (0.00 sec)


> select * from mysql.user where User=\'root\' and Host=\'localhost\'\G

 

修改/设置密码

1. 修改root用户密码

Methods-1
  # mysqladmin -u root -p password \'new_password\'
     Enter password:--->在这里要输入正确的旧密码

 

Methods-2
  > update mysql.user set Password=PASSWORD(\'new_password\') where User=\'root\' and Host=\'localhost\';
  > flush privileges;

 

Methods-3
  > set password=PASSWORD(\'new_password\');

2. 修改普通用户密码

Methods-1

  > set  password for  \'username\'@\'hostname\'=PASSWORD(\'new_password\');

 

Methods-2  创建一个无初始密码的普通用户后可以直接用其登入mysql,登入后可以通过这个方法设置密码:

        > set password=PASSWORD(\'new_password\');

 

Methods-3

  > update mysql.user set Password=PASSWORD(\'new_password\') where User=\'username\' and Host=\'hostname\';
  > flush privileges;

 

Methods-4

  > grant  select  on  *.*  to  \'username\'@\'hostname\'  identified by \'new_password\';

3. 忘记root密码的解决

# /etc/init.d/mysqld   start   --skip-grant-tables
# mysql -u root -p  --->这样可以无密码登陆进去了

-> update  mysql.user  set   Password=PASSWORD(\'new_password\')   where  User=\'root\' and Host=\'localhost\';

> flush privileges;

 

分类:

技术点:

相关文章: