暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql 5.5启动选项--skip-grant-table含义

lovedb 2018-01-02
945

   mysql虽说部署安装相比oracle,简单且易于上手,但真正要把部署这块搞通弄精,也不是一下子的功夫。需要持续查阅官方手册,辅以动手实践,同时结合网上一些权威大牛的文章,才可以更为全方位多层次的掌握加深理解。


1,部署完mysql 5.5发现只能查看数据库information_schema数据库

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

+--------------------+

1 row in set (0.00 sec)


2,查看datadir可知其它数据库mysql,performance_schema,test是存在的

mysql> show variables like '%datadir%';

+---------------+------------------------+

| Variable_name | Value                  |

+---------------+------------------------+

| datadir       | usr/local/mysql/data/ |

+---------------+------------------------+

1 row in set (0.00 sec)

[root@mygirl local]# ll usr/local/mysql/data

total 12

drwx------. 2 mysql mysql 4096 Jan  2 19:26 mysql

drwx------. 2 mysql mysql 4096 Jan  2 19:26 performance_schema

drwxr-xr-x. 2 mysql mysql 4096 Jan  2 19:24 test


3,附加选项--skip-grant-table重启mysql后,即可查看所有的数据库

[root@mygirl local]# usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

[1] 8014

[root@mygirl local]# Logging to '/usr/local/mysql/data/mygirl.err'.

180102 19:41:30 mysqld_safe Starting mysqld daemon with databases from usr/local/mysql/data

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

4 rows in set (0.00 sec)


4,并且使用--skip-grant-table可以无密码登陆mysql

(注:事实root用户是有密码的)

[root@mygirl local]# /usr/local/mysql/bin/mysql   -u root -p

Enter password: 

mysql> select host,user,password from mysql.user;

+-----------+------+-------------------------------------------+

| host      | user | password                                  |

+-----------+------+-------------------------------------------+

| localhost | root | *0BE179E54992731AB04DABE559259A9F42801194 |

| mygirl    | root | *0BE179E54992731AB04DABE559259A9F42801194 |

| 127.0.0.1 | root | *0BE179E54992731AB04DABE559259A9F42801194 |

| ::1       | root | *0BE179E54992731AB04DABE559259A9F42801194 |

| localhost |      |                                           |

| mygirl    |      |                                           |

+-----------+------+-------------------------------------------+

6 rows in set (0.00 sec)


5,mysql对于此选项--skip-grant-table为false,是需要密码才可以登陆mysql

[root@mygirl local]# /usr/local/mysql/bin/mysqld --verbose --help|grep -i --color skip-grant-table

180102 20:04:08 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled

180102 20:04:08 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.5.58) starting as process 8921 ...

180102 20:04:08 [Note] Plugin 'FEDERATED' is disabled.

  --skip-grant-tables Start without grant tables. This gives all users FULL

skip-grant-tables                                 FALSE

[root@mygirl local]# 

[root@mygirl local]# /usr/local/mysql/bin/mysql   -u root -p

Enter password: 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@mygirl local]# 


6,--skip-grant-table选项含义

  a,mysql服务器启动不使用权限系统,即任何人不用密码即可创建

  b,可以执行mysqladmin flush-privileges或mysqladmin reload或者执行flush privileges让正在运行且不使用权限系统的mysql服务器重新使用权限系统


7,手工验证下 上述第6步之b的结论,确实如此

[root@mygirl local]# /usr/local/mysql/bin/mysqladmin shutdown -u root -p

[root@mygirl local]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables=true &

[root@mygirl local]# /usr/local/mysql/bin/mysql   -u root -p

Enter password: 

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

[root@mygirl ~]# /usr/local/mysql/bin/mysqladmin reload

[root@mygirl local]# /usr/local/mysql/bin/mysql   -u root -p

Enter password: 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@mygirl local]# 


文章转载自lovedb,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论