天天看點

Mysql資料庫學習筆記

1.Mysql資料庫安裝要點總結

1)初始化授權表 mysql_install_db;

/user/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql(安裝目錄) --datadir=/data/mysql/3306/data(資料存放目錄) --user=mysql

2)用特定的使用者啟動守護程式;

3)修改root使用者的密碼;

4)讓mysql自動重新開機;

2.Mysql系統更新需要備份資料

1)資料庫目錄;

2)守護程式;

3)配置檔案

3.一台伺服器運作多台mysql資料庫

最好的辦法就是使用不同的TCP/IP端口和套接字檔案重新編譯伺服器

--prefix=/usr/local/mysql

--with-tcp-port=3308

--with-unix-socket=/data/mysql/3308/mysql.sock

4.Mysql資料庫密碼相關操作

1)mysql初始化密碼

/usr/bin/mysqladmin -uroot password 密碼 (rpm包)

/usr/local/mysql/bin/mysqladmin -uroot password 密碼 (源碼包)

2)修改root使用者密碼:

/usr/bin/mysqladmin -uroot -p舊密碼 password 新密碼 (rpm包)

/usr/local/mysql/bin/mysqladmin -uroot -p舊密碼 password新密碼 (源碼包)

還可以用set和update指令修改資料庫密碼

mysql>SET PASSWORD FOR root=PASSWORD('new_password');

mysql>update user set password=password('mysql') where user='root'

flush privileges

3)mysql資料庫忘記密碼

/usr/local/mysql/bin/mysqld_safe --skip-grant-tables & 跳過權限授權表

/usr/local/mysql/bin/mysqladmin -uroot flush-privileges password "mysql" -S /data/mysql/3306/mysql.sock                                             然後重新開機mysql即可。                                                       

5.mysql資料庫權限的管理

1)權限檢視

select * from user \G;

2)檢視某個使用者的權限資訊

show grants for 'usermame'@'hostname';

2.使用grant增權重限

grant all privileges on icewarp.* to 'sfzhang'@'192.168.1.115' identified by 'da2010##';

标注:sfzhang在192.168.1.115用戶端對資料庫icewarp擁有所有權限

grant all privileges on icewarp.* to 'sfzhang'@'%' identified by 'da2010##';

标注:sfzhang在在任何用戶端對資料庫icewarp擁有所有權限

grant all privileges on jiradb.* to 'sfzhang'@'192.168.1.%' identified by 'da2010##' with grant option;

标注:sfzhang在192.168.1.0網段的用戶端對資料庫icewarp擁有所有權限,并且可以把授權給其它使用者(grant option選項)

3)使用revoke取消權限

注意:撤銷權限的時候也要加主機

revoke delete on test.* from 'david'@'hostname';

4)删除使用者

delete from user where user="wikiuser" and host="192.168.1.125";

5)權限管理執行個體:

grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, EXECUTE  on  wikidb.* to 'wikiuser'@'192.168.1.125' identified by 'wiki@#$'; (授權限)

revoke SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, EXECUTE  on wikidb.* from 'wikiuser'@'192.168.1.25';(撤銷權限)                      

6.Mysql常用指令集合

1)檢視mysql變量資訊

[root@mysql ~]#/usr/local/mysql/bin/mysqladmin -h localhost variables -uroot -p

2)檢視Mysql版本資訊

mysql>select version();

3)檢視目前使用者

mysql>select user();

4)檢視目前資料庫

select database();

5)檢視mysql的所有使用者

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

6)檢視mysql資料庫日志資訊

mysql>show variables like 'log_%'

7)從1700列開始,檢視12行資料

mysql> select * from parameters limit 1700,12;

8)删除資料表

mysql>drop table wiki;

9)檢視mysql支援存儲引擎

mysql> show engines;

10)建立資料庫的時候指定資料庫的字元集

create database wordpress default character set utf8;

7.Mysql資料庫的備份還原

1)備份資料庫

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql     

2)備份MySQL資料庫為帶删除表的格式,能夠讓該備份覆寫已有資料庫而不需要手動删除原有資料庫

mysqldump add-drop-table -uusername -ppassword databasename > backupfile.sql     

3)直接将MySQL資料庫壓縮備份   

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz     

4)備份MySQL資料庫某些表    

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql     

5)同時備份多個MySQL資料庫    

mysqldump -hhostname -uusername -ppassword  databases databasename1 databasename2 databasename3 > multibackupfile.sql     

6)僅僅備份資料庫結構    

mysqldump no-data databases databasename1 databasename2 databasename3 > structurebackupfile.sql     

7)備份伺服器上所有資料庫    

mysqldump all-databases > allbackupfile.sql     

8)還原MySQL資料庫的指令   

mysql -hhostname -uusername -ppassword databasename < backupfile.sql     

9)還原壓縮的MySQL資料庫    

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename     

10)将資料庫轉移到新伺服器   

mysqldump -uusername -ppassword databasename | mysql –-host=*.*.*.* -uroot -p -C databasename

11)遠端備份資料庫

mysqldump -uroot -p test pet -h 192.168.128.128 > /tmp/mysqlbackup/test.sql

遠端登入資料庫,在登入之前要授權

grant all on *.* to 'root'@'172.16.100.108' IDENTIFIED BY 'mysql';    

本文轉自 sfzhang 51CTO部落格,原文連結:http://blog.51cto.com/sfzhang88/860768,如需轉載請自行聯系原作者