指定登錄ip
創(chuàng)新互聯(lián)建站是專業(yè)的河南網(wǎng)站建設公司,河南接單;提供成都網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行河南網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!使用root用戶登錄錄創(chuàng)建授權(quán)新用戶:
mysql> grant all on . to 'user1'@'127.0.0.1' identified by '123456';
// all 所有操作(增刪查改)
// 第一個 通配所有庫名,第二個通配所有表名
// user1 為用戶名
// 127.0.0.1 指定登錄ip,可用通配符%表示所有ip。
// ‘123456’ 為user1用戶的登錄密碼
Query OK, 0 rows affected (0.00 sec)
使用user1用戶登錄,驗證:
[root@localhost ~]# mysql -uuser1 -p
Enter password:
ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)
// 登錄失敗,因為mysql默認使用socket登錄。需要指定地址。
[root@localhost ~]# mysql -uuser1 -h227.0.0.1 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
.....
mysql>
// 登錄成功。其中g(shù)rant語句是不會記錄到命令歷史中的。
指定登錄socket
使用root用戶重新對user1用戶授權(quán):
mysql> grant all on . to 'user1'@'localhost' identified by '123456';
退出root用戶,使用user1 用戶登錄:
[root@localhost ~]# mysql -uuser1 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
.....
mysql>
// 因為指定登錄主機為localhost,所以該用戶默認使用(監(jiān)聽)本地mysql.socket文件,不需要指定IP即可登錄。
使用root用戶登錄: mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.159.132' identified by '123456';// 創(chuàng)建user2用戶,并授權(quán)其針對db1庫中的所有表有SELECT,UPDATE,INSERT 權(quán)限。// user2用戶僅能通過ip 192.168.159.132 登錄。Query OK, 0 rows affected (0.00 sec)
mysql> show grants;// 查看當前用戶的授權(quán)信息mysql> show grants for user1@127.0.0.1;// 查看指定用戶的授權(quán)信息
使用情況:user2用戶不僅需要在192.168.159.132上登錄,還需要在192.168.159.133上登錄,這時候就需要把授權(quán)的命令全部在執(zhí)行一遍
查看user2具有哪些權(quán)限: mysql> show grants for user2@'192.168.159.132'; +--------------------------------------------------------------------------------------------------------------------+ | Grants for user2@192.168.159.132 | +--------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'user2'@'192.168.159.132' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' | | GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.132' +--------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec) 執(zhí)行user2的授權(quán)命令:// 將ip改成192.168.159.133mysql>GRANT USAGE ON *.* TO 'user2'@'192.168.159.132' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'mysql> GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.132'; 查看user2@192.168.159.133的授權(quán): mysql> show grants for user2@'192.168.159.133'; +--------------------------------------------------------------------------------------------------------------------+ | Grants for user2@192.168.159.133 | +--------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'user2'@'192.168.159.133' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' | | GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.133' +--------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)// 授權(quán)成功后,user3用戶就可以在192.168.159.133對db1進行操作。(如不能遠程鏈接,檢查以下防火墻規(guī)則。)// user2在兩個ip上登錄使用的是用一個密碼。// 重新授權(quán)時,權(quán)限行的內(nèi)容和操作的庫表能修改。
先用mysql用戶登錄mysql mysql> use db1; //切換到db1庫Database changed mysql> show tables; //查看當前庫中有哪些表。+---------------+ | Tables_in_db1 | +---------------+ | t1 | +---------------+1 row in set (0.00 sec) mysql> select count(*) from mysql.user;// 查看mysql庫中的user表有幾行+----------+ | count(*) | +----------+ | 15 | +----------+1 row in set (0.00 sec) mysql> select * from mysql.db \G;// 查看mysql庫的db表中的所有內(nèi)容// * 表示所有內(nèi)容,\G是為了讓輸出內(nèi)容整齊*************************** 1. row *************************** Host: % Db: test User: Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: N Execute_priv: N Event_priv: Y Trigger_priv: Y ......// 這種操作平時盡量不要用,內(nèi)容多的情況下select*會比較占資源。mysql> select db from mysql.db;// 查看db這個字段,在mysql庫的db表中+---------+ | db | +---------+ | test | | test\_% | | db1 | | db1 | | db1 | | db1 | | db1 | | db1 | +---------+8 rows in set (0.00 sec) mysql> select db,user from mysql.db;// 查看db和user字段,在mysql庫的db表中// 需要查看的字段之間用逗號隔開+---------+-------+ | db | user | +---------+-------+ | test | | | test\_% | | | db1 | user2 | | db1 | user3 | | db1 | user4 | | db1 | user2 | | db1 | user3 | | db1 | user2 | +---------+-------+8 rows in set (0.00 sec) mysql> select * from mysql.db where host like '192.168.%'\G; // 查看所有IP匹配192.168.%的內(nèi)容,從mysql庫的db表中// like 匹配,*************************** 1. row *************************** Host: 192.168.159.131 Db: db1 User: user2 Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: N Create_priv: N Drop_priv: N Grant_priv: N References_priv: N Index_priv: N Alter_priv: N Create_tmp_table_priv: N Lock_tables_priv: N Create_view_priv: N Show_view_priv: N Create_routine_priv: N Alter_routine_priv: N Execute_priv: N Event_priv: N Trigger_priv: N ...... mysql> create table t1(`id` int(4),`name` char(40));// 在db1庫下創(chuàng)建表ti// 有id和name兩個字段Query OK, 0 rows affected (0.39 sec) mysql> insert into db1.t1 values(1,'abc');// 向t1表中添加一行數(shù)據(jù)Query OK, 1 row affected (0.00 sec) mysql> select * from db1.t1;// 查看t1表中的內(nèi)容+------+------+ | id | name | +------+------+ | 1 | abc | +------+------+1 row in set (0.00 sec)// 添加數(shù)據(jù)時,字符串盡量加單引號。mysql> update db1.t1 set name='aaa' where id=1;// 更新表中id為1的那一行name 的內(nèi)容。Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from db1.t1; +------+------+ | id | name | +------+------+ | 1 | aaa | +------+------+1 row in set (0.00 sec) mysql> delete from db1.t1 where id=1;// 刪除表中id為1那一行的內(nèi)容Query OK, 1 row affected (0.00 sec) mysql> select * from db1.t1;Empty set (0.00 sec) mysql> truncate db1.t1; // 清空表中的內(nèi)容,表結(jié)構(gòu)還在Query OK, 0 rows affected (0.09 sec) mysql> drop table t1;// 刪除表,整個表都刪除,包括內(nèi)容和表結(jié)構(gòu)Query OK, 0 rows affected (0.04 sec) mysql> drop database db1;// 刪除庫,整個庫都刪除,包括表Query OK, 0 rows affected (0.13 sec)// 平時盡量少用truncate和drop。mysql> use mysql; mysql> delete from user where User='user1' and Host='127.0.0.1';// 刪除用戶,在刪除用戶前需先指定用戶表Query OK, 1 row affected (0.06 sec)
備份恢復庫
[root@localhost ~]# mysqldump -uroot -p123456 mysql >/tmp/mysqlbak.sql
// 備份指定庫(mysql庫)到/tmp/mysqlbak.sql文件中
[root@localhost ~]# mysqldump -uroot -p123456 -A >/rmp/mysqlbak_all.sql
// 備份所有庫到/tmp/mysqbak_all.sql 文件中
[root@localhost ~]# mysql -uroot -p123456 mysql< /tmp/mysqlbak.sq
// 恢復到mysql庫中。也可以恢復到新的庫中(需新建庫)
備份恢復表
[root@localhost ~]#mysql -uroot -p123456 mysql user > /tmp/user.sql
// 備份指定表。在庫名后空格跟表名就行
[root@localhost ~]#mysqldump -uroot -p123456 -d mysql > /tmp/mysql_tb.sql
// 只備份表結(jié)構(gòu)
[root@localhost ~]#mysql -uroot -p123456 mysql < /tmp/user.sql
// 恢復的時候不需要加表名
// 數(shù)據(jù)量小用mysqldump備份還可以,備份量大不適用。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。