天天看点

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,如需转载请自行联系原作者