使用skip-grant-tables啟動庫後不能執行grant語句
使用skip-grant-tables選項啟動資料庫時,
不能執行 grant語句,可以對mysql.user表進行,update,delete,insert操作:
[mysql@localhost ~]$ mysqld_safe --skip-grant-tables
[mysql@localhost ~]$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.23-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
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> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select user,host from user;
+-----------+-----------------------+
| user | host |
+-----------+-----------------------+
| root | % |
| song | % |
| song_test | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
| root | localhost.localdomain |
+-----------+-----------------------+
7 rows in set (0.00 sec)
mysql> grant all on *.* to 'test'@'%' identified by 'test';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> insert into user (user,host) values ('test','%');
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
mysql> UPDATE user SET Password=PASSWORD('123456') where USER='root';
Query OK, 3 rows affected (0.03 sec)
Rows matched: 5 Changed: 3 Warnings: 0
mysql> delete from user where user='root' and host='::1';
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO user VALUES('%','test',PASSWORD('test'),'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '','', '','','0','0','0','0','','','Y');
Query OK, 1 row affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+-----------+-----------------------+
| user | host |
+-----------+-----------------------+
| root | % |
| song | % |
| song_test | % |
| test | % |
| root | 127.0.0.1 |
| root | localhost |
| root | localhost.localdomain |
+-----------+-----------------------+
7 rows in set (0.00 sec)
mysql> exit
Bye
[mysql@localhost ~]$ mysqladmin shutdown -u root
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
[mysql@localhost ~]$ mysqladmin shutdown
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'mysql'@'localhost' (using password: NO)'
[mysql@localhost ~]$ mysqladmin shutdown -u root -p
Enter password:
[mysql@localhost ~]$
[mysql@localhost ~]$ service mysql start
Starting MySQL. SUCCESS!
[mysql@localhost ~]$
[mysql@localhost ~]$ mysql -u test -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.23-enterprise-commercial-advanced-log
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
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> desc mysql.user;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD=PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)
[mysql@localhost ~]$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.23-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
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> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select user,host from user;
+-----------+-----------------------+
| user | host |
+-----------+-----------------------+
| root | % |
| song | % |
| song_test | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
| root | localhost.localdomain |
+-----------+-----------------------+
7 rows in set (0.00 sec)
mysql> grant all on *.* to 'test'@'%' identified by 'test';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> insert into user (user,host) values ('test','%');
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
mysql> UPDATE user SET Password=PASSWORD('123456') where USER='root';
Query OK, 3 rows affected (0.03 sec)
Rows matched: 5 Changed: 3 Warnings: 0
mysql> delete from user where user='root' and host='::1';
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO user VALUES('%','test',PASSWORD('test'),'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '','', '','','0','0','0','0','','','Y');
Query OK, 1 row affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+-----------+-----------------------+
| user | host |
+-----------+-----------------------+
| root | % |
| song | % |
| song_test | % |
| test | % |
| root | 127.0.0.1 |
| root | localhost |
| root | localhost.localdomain |
+-----------+-----------------------+
7 rows in set (0.00 sec)
mysql> exit
Bye
[mysql@localhost ~]$ mysqladmin shutdown -u root
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
[mysql@localhost ~]$ mysqladmin shutdown
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'mysql'@'localhost' (using password: NO)'
[mysql@localhost ~]$ mysqladmin shutdown -u root -p
Enter password:
[mysql@localhost ~]$
[mysql@localhost ~]$ service mysql start
Starting MySQL. SUCCESS!
[mysql@localhost ~]$
[mysql@localhost ~]$ mysql -u test -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.23-enterprise-commercial-advanced-log
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
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> desc mysql.user;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD=PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-1481800/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysqld --skip-grant-tablesMySql
- the --skip-grant-tables option so it cannot
- 後臺執行SQL語句(oracle)SQLOracle
- oracle grant 授權語句Oracle
- oracle grant 語句的GRANT privilige TO user IDENTIFIED BY password 語法OracleIDE
- Mybatis 動態執行SQL語句MyBatisSQL
- Oracle動態執行語句(Execute Immediate)Oracle
- oracle使用profiler分析語句執行效率Oracle
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- finally語句在return執行之後,return返回之前執行
- mySQL 執行語句執行順序MySql
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- 使用預處理PreparedStatement執行Sql語句SQL
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- oracle常用後臺程序及sql語句執行流程OracleSQL
- for語句執行順序
- sql語句批量執行SQL
- FORALL執行DELETE語句delete
- FORALL執行UPDATE語句
- 同一個語句在plsql的sql視窗可以執行命令視窗不能執行SQL
- 資料庫查詢優化:使用explain分析sql語句執行效率資料庫優化AISQL
- oracle 中如何顯示sql語句的執行時間和sql語句的執行後的當前時間OracleSQL
- python:return之後的語句還會執行嗎Python
- 查詢正在執行的sql語句及該語句執行的時間SQL
- MySQL語句執行分析(一)MySql
- MySQL語句執行分析(二)MySql
- sql語句如何執行的SQL
- SQL語句執行順序SQL
- PHP執行批量mysql語句PHPMySql
- FORALL執行UPDATE語句(二)
- 執行大的sql語句SQL
- toad執行sql語句SQL
- SQL SERVER 中構建執行動態SQL語句SQLServer
- MySQL中UPDATE語句裡SET後使用AND的執行過程和結果分析MySql
- DM聯機執行SQL語句進行資料庫備份SQL資料庫
- YCSB擴充套件-語句執行頻率,執行指定的測試查詢語句套件
- Laravel 使用 sql 語句 和 sql 檔案 來建立執行資料庫遷移LaravelSQL資料庫
- mysql執行sql語句過程MySql