mysql 学习笔记
2012-11-16 08:48
197 查看
1、条件语句:
2、导出数据结构:
mysqldump -d -uroot -p database>databaseStr.sql
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
1.备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A >F:\all.sql
2.备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d>F:\all_struct.sql
3.备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t>F:\all_data.sql
4.备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -uroot -p123456 mydb>F:\mydb.sql
5.备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d>F:\mydb.sql
6.备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t>F:\mydb.sql
7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2 >f:\multables.sql
8.一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 >f:\muldbs.sql
还原:
1.还原全部数据库:
(1) mysql命令行:mysql>source f:\all.sql
(2) 系统命令行: mysql -uroot -p123456 <f:\all.sql
2.还原单个数据库(需指定数据库)
(1) mysql>use mydb
mysql>source f:\mydb.sql
(2) mysql -uroot -p123456 mydb <f:\mydb.sql
3.还原单个数据库的多个表(需指定数据库)
(1) mysql>use mydb
mysql>source f:\multables.sql
(2) mysql -uroot -p123456 mydb <f:\multables.sql
4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)
(1) mysql命令行:mysql>source f:\muldbs.sql
(2) 系统命令行: mysql -uroot -p123456 <f:\muldbs.sql
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
用户:
1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限
2、修改密码
shell
1、设置连接字符接
mysql -u root -p --default-character-set=utf8
3、相关问题
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。 [1]
解决方案:
在my.cnf(windows下my.ini)文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000
关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理
解决方案:
在my.cnf文件中添加或者修改以下变量:
max_allowed_packet = 10M(也可以设置自己需要的大小)
max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。
方案二[2]
参考:
[1] mdxy-dxy.MySQL server has gone away 问题的解决方法[EB/OL].[2014-03-07]./article/1242051.html
[2] 瓜田守望者.mysql max_allowed_packet 查询和修改[EB/OL].[2014-03-07].http://smilemonkey.iteye.com/blog/660889
select if(c.cname IS NULL,b.cname,c.cname) as cname from pw_colonys a left join pw_cnstyles b on a.styleid=b.id left join pw_cnstyles c on b.upid = c.id where a.id = 13
select IF ( (select name from table1) IS NOT NULL, (select name from table2) , (select name from table3) ) as name
2、导出数据结构:
mysqldump -d -uroot -p database>databaseStr.sql
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
1.备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A >F:\all.sql
2.备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d>F:\all_struct.sql
3.备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t>F:\all_data.sql
4.备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -uroot -p123456 mydb>F:\mydb.sql
5.备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d>F:\mydb.sql
6.备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t>F:\mydb.sql
7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2 >f:\multables.sql
8.一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 >f:\muldbs.sql
还原:
1.还原全部数据库:
(1) mysql命令行:mysql>source f:\all.sql
(2) 系统命令行: mysql -uroot -p123456 <f:\all.sql
2.还原单个数据库(需指定数据库)
(1) mysql>use mydb
mysql>source f:\mydb.sql
(2) mysql -uroot -p123456 mydb <f:\mydb.sql
3.还原单个数据库的多个表(需指定数据库)
(1) mysql>use mydb
mysql>source f:\multables.sql
(2) mysql -uroot -p123456 mydb <f:\multables.sql
4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)
(1) mysql命令行:mysql>source f:\muldbs.sql
(2) 系统命令行: mysql -uroot -p123456 <f:\muldbs.sql
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
用户:
1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
2、修改密码
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='name'; mysql> FLUSH PRIVILEGES;
shell
1、设置连接字符接
mysql -u root -p --default-character-set=utf8
3、相关问题
错误:MySQL server has gone away
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。 [1]
解决方案:
在my.cnf(windows下my.ini)文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000
关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理
解决方案:
在my.cnf文件中添加或者修改以下变量:
max_allowed_packet = 10M(也可以设置自己需要的大小)
max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。
方案二[2]
#进入mysql server set global max_allowed_packet = 2*1024*1024*10 #查看下max_allowed_packet是否编辑成功: show VARIABLES like '%max_allowed_packet%';
参考:
[1] mdxy-dxy.MySQL server has gone away 问题的解决方法[EB/OL].[2014-03-07]./article/1242051.html
[2] 瓜田守望者.mysql max_allowed_packet 查询和修改[EB/OL].[2014-03-07].http://smilemonkey.iteye.com/blog/660889
相关文章推荐
- Mysql学习笔记(1)
- MySQL学习笔记之数据存储类型
- mysql 学习笔记
- MySQL学习笔记一
- mysql学习笔记(1)
- 【Mysql学习笔记】浅析mysql的binlog
- Linux 安装mysql学习笔记
- MySQL学习笔记之四:插入、更新与删除数据
- PHP与MySQL学习笔记9:创建Web数据库
- 43.笔记 MySQL学习——EXISTS 和 NOT EXISTS子查询
- MySQL学习笔记之四:并发控制和事务机制
- mysql学习笔记
- mysql索引的学习笔记
- MySQL学习笔记——慢查询
- mysql学习笔记[1]
- 【MySQL学习笔记】MySQL 启动过程
- linux+python+djiango+mysql编译安装学习笔记
- 我的php学习笔记(七)MySQL在php中的应用
- MySQL事务控制语句(学习笔记)
- MySQL学习笔记_5_SQL语言的设计与编写(上)