一些Mysql的常见问题.doc

上传人:hw****26 文档编号:3545488 上传时间:2019-06-04 格式:DOC 页数:8 大小:56KB
下载 相关 举报
一些Mysql的常见问题.doc_第1页
第1页 / 共8页
一些Mysql的常见问题.doc_第2页
第2页 / 共8页
一些Mysql的常见问题.doc_第3页
第3页 / 共8页
一些Mysql的常见问题.doc_第4页
第4页 / 共8页
一些Mysql的常见问题.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、以下文章由 808 影视网 收集提供于影视网Q: 如何登录 MySQL使用 mysql提供的客户端工具登录#PATH_TO_MYSQL/bin/mysql -uuser -ppassword dateabaseQ: 忘记 MySQL的 root密码,怎么修改如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。启动 MySQL :PATH_TO_MYSQL/bin/mysqld -skip-grant-tables mysqlflush privileges;重新杀 MySQL ,用正常方法启动 MySQL一定注意:很多新手没有用 password=password

2、(“.“),而是直接 password=“.“所以改掉密码不好使Q: 为什么 mysqld起来了,却无法登录,提示“/var/lib/mysql/mysql.sock“不存在这种情况大多数是因为你的 mysql是使用 rpm方式安装的,它会自动寻找/var/lib/mysql/mysql.sock 这个文件,通过 unix socket登录 mysql。常见解决办法如下:1、创建/修改文件 /etc/f,至少增加/修改一行mysqlclientsocket = /tmp/mysql.sock#在这里写上你的 mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/m

3、ysql/下2、指定 IP地址,使用 tcp方式连接 mysql,而不使用本地 sock方式#mysql -h127.0.0.1 -uuser -ppassword3、为 mysql.sock 加个连接,比如说实际的 mysql.sock在 /tmp/ 下,则#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可Q: 如何修改 mysql用户密码大致有 2种方法:1、mysqlmysql -uroot -pxxx mysqlmysqlupdate user set password=password(new_password) where user

4、=user;mysqlflush privileges;2、格式:mysqladmin -u 用户名 -p 旧密码 password 新密码#mysqladmin -uroot -password ab12注:因为开始时 root没有密码,所以-p 旧密码一项就可以省略了。Q: 如何新增一个 mysql用户格式:grant select on 数据库.* to 用户名登录主机 identified by “密码“例 1、增加一个用户 test1密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以 root用户连入 MYSQL,然后键入以下命令:mys

5、qlgrant select,insert,update,delete on *.* to test1“%“ Identified by “abc“;但例 1增加的用户是十分危险的,你想如某个人知道 test1的密码,那么他就可以在internet上的任何一台电脑上登录你的 mysql数据库并对你的数据可以为所欲为了,解决办法见例 2。例 2、增加一个用户 test2密码为 abc,让他只可以在 localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost 指本地主机,即 MYSQL数据库所在的那台主机),这样用户即使用知道 test2的密码,他也无法从

6、 internet上直接访问数据库,只能通过 MYSQL主机上的 web页来访问了。mysqlgrant select,insert,update,delete on mydb.* to test2localhost identifiedby “abc“;如果你不想 test2有密码,可以再打一个命令将密码消掉。mysqlgrant select,insert,update,delete on mydb.* to test2localhost identifiedby “;另外,也可以通过直接往 user表中插入新纪录的方式来实现。Q: 如何查看 mysql有什么数据库mysqlshow da

7、tabases;Q: 如何查看数据库下有什么表mysqlshow tables;Q: 如何导出数据有几种方法,如下:1、使用 mysqldump#mysqldump -uuser -ppassword -B database -tables table1 -tables table2 dump_data_20051206.sql详细的参数2、backup to 语法mysqlBACKUP TABLE tbl_name,tbl_name. TO /path/to/backup/directory;详细请查看 mysql手册3、mysqlhotcopy#mysqlhotcopy db_name /

8、path/to/new_directory或#mysqlhotcopy db_name_1 . db_name_n /path/to/new_directory或#mysqlhotcopy db_name./regex/详细请查看 mysql手册4、select into outfile详细请查看 mysql手册5、客户端命令行#mysql -uuser -ppassword -e “sql statements“ database result.txt以上各种方法中,以 mysqldump最常用Q: 如何在命令行上执行 SQL语句#mysql -uuser -ppassword -e “sq

9、l statements“ databaseQ: 如何导入备份出来的文件常见几种方法如下:1、由 mysqldump出来的文件#mysql -uuser -ppassword database source /path_to_file/dump.sql;3、按照一定格式存储的文本文件或 csv等文件#mysqlimport options database file1 file2.详细请查看 mysql手册4、文件类型同上,也可以使用 load data语法导入详细请查看 mysql手册Q: 如何为 mysql添加 root远程登录权限默认情况下,MySQL 之 允许本地登录,需要修改/etc

10、/mysql/f 文件:注释这一行:bind-address=127.0.0.1 = #bind-address=127.0.0.1对于需要远程登录的用户执行如下命令:mysql GRANT ALL PRIVILEGES ON *.* TO root“%“ IDENTIFIED BY “yourpasswd“;mysql flush privileges;Q: 如何 MySQL备份与恢复备份数据库(包含全部表和全部存储过程):C:Documents and SettingsAdministratormysqldump -h localhost -u root -p -R bannei d:/l

11、og/mydb.sqlEnter password: */备份数据库所有表C:Documents and SettingsAdministratormysqldump -h localhost -u root -p jxhxt d:/log/bn2010-01-29.sqlEnter password: */备份数据库中指定表数据C:Documents and SettingsAdministratormysqldump -h localhost -u root -p jxhxt invite_mail d:/log/bn2010-01-29.sqlEnter password: */备份全部

12、存储过程C:Documents and SettingsAdministratormysqldump -h localhost -u root -p -t -d -R bannei d:/log/myproc.sqlEnter password: */导出一个数据库结构C:Documents and SettingsAdministratormysqldump -u root -p -d -add-drop-table ruyi_dbd:ruyi_db.sql/导入数据文件C:Documents and SettingsAdministratormysql -h localhost -u ro

13、ot -p bannei use 数据库然后使用 source命令,后面参数为脚本文件(如这里用到的.sql)mysqlsource d:ruyi_db.sql1、mysqldump1.1 备份mysqldump 是采用 SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下 mysqldump 的一些主要参数:1. -compatible=name它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、 mysql323、mysql40、postgr

14、esql、oracle、mssql、db2、maxdb、no_key_options、 no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。2. -complete-insert,-c导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。3. -default-character-set=charset指定导出数据时采用何种字符集,

15、如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。4. -disable-keys告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。5. -extended-insert = true|false默认情况下,mysqldump 开启 -co

16、mplete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。6. -hex-blob使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、 BLOB。7. -lock-all-tables,-x在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 -single-transaction 和 -lock-tables选项。8. -lock-tables它和 -lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁

17、定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 -single-transaction 选项。9. -no-create-info,-t只导出数据,而不添加 CREATE TABLE 语句。10.-no-data,-d不导出任何数据,只导出数据库表结构。11.-opt这只是一个快捷选项,等同于同时添加 -add-drop-tables -add-locking -create-option -disable-keys -extended-insert -lock-tables -quick -set-charset 选项。本选项能让 mysqldump 很快的

18、导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 -skip-opt 禁用。注意,如果运行mysqldump 没有指定 -quick 或 -opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。12.-quick,-q该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。13.-routines,-R导出存储过程以及自定义函数。14.-single-transaction该选项在导出数据之前提交一个 BEGIN SQL 语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。

19、它只适用于事务表,例如 InnoDB 和BDB。本选项和 -lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 -quick 选项。15.-triggers同时导出触发器。该选项默认启用,用 -skip-triggers 禁用它。其他参数详情请参考手册,我通常使用以下 SQL 来备份 MyISAM 表:/usr/local/mysql/bin/mysqldump -uyejr -pyejr -default-character-set=utf8 -opt -extended-insert=false -triggers

20、-R -hex-blob -x db_name db_name.sql使用以下 SQL 来备份 Innodb 表:/usr/local/mysql/bin/mysqldump -uyejr -pyejr -default-character-set=utf8 -opt -extended-insert=false -triggers -R -hex-blob -single-transaction db_name db_name.sql另外,如果想要实现在线备份,还可以使用 -master-data 参数来实现,如下:/usr/local/mysql/bin/mysqldump -uyejr

21、-pyejr -default-character-set=utf8 -opt -master-data=1 -single-transaction -flush-logs db_name db_name.sql它只是在一开始的瞬间请求锁表,然后就刷新 binlog了,而后在导出的文件中加入CHANGE MASTER 语句来指定当前备份的 binlog位置,如果要把这个文件恢复到 slave里去,就可以采用这种方法来做。1.2 还原用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。1. 直接用 mysql 客户端例如:/usr/local/my

22、sql/bin/mysql -uyejr -pyejr db_name 我的电脑-属性-环境变量-新建-PATH=“;pathmysqlbin;”其中 path为 MYSQL的安装路径。二.简单的介绍一下命令行进入 MYSQL的方法:1.C:mysql -h hostname -u username -p按 ENTER键,等待然后输入密码。这里 hostname为服务器的名称,如localhost,username 为 MYSQL的用户名,如 root。进入命令行后可以直接操作 MYSQL了。2.简单介绍一下 MYSQL命令:mysql-CREATE DATABASE dbname;/创建数据

23、库mysql-CREATE TABLE tablename;/创建表mysql-SHOW DATABASES;/显示数据库信息,有那些可用的数据库。mysql-USE dbname;/选择数据库mysql-SHOW TABLES;/显示表信息,有那些可用的表mysql-DESCRIBE tablename;/显示创建的表的信息三.从数据库导出数据库文件:1.将数据库 mydb导出到 e:mysqlmydb.sql文件中:打开开始-运行-输入 cmd 进入命令行模式c:mysqldump -h localhost -u root -p mydb e:mysqlmydb.sql然后输入密码,等待一

24、会导出就成功了,可以到目标文件中检查是否成功。2.将数据库 mydb中的 mytable导出到 e:mysqlmytable.sql文件中:c:mysqldump -h localhost -u root -p mydb mytablee:mysqlmytable.sqlC:Documents and SettingsXuWeimysql -h localhost -u root -p bannei mysqldump -h localhost -u root -p mydb -add-drop-table e:mysqlmydb_stru.sql四.从外部文件导入数据到数据库中:从 e:my

25、sqlmydb2.sql中将文件中的 SQL语句导入数据库中:1.从命令行进入 mysql,然后用命令 CREATE DATABASE mydb2;创建数据库 mydb2。2.退出 mysql 可以输入命令 exit;或者 quit;3.在 CMD中输入下列命令:c:mysql -h localhost -u root -p mydb2 e:mysqlmydb2.sql然后输入密码,就 OK了。五.下面谈一下关于导入文件大小限制问题的解决:默认情况下:mysql 对导入文件大小有限制的,最大为 2M,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下:1.在 php.ini中修改相关参数:影响 mysql导入文件大小的参数有三个:memory_limit=128M,upload_max_filesize=2M,post_max_size=8M修改 upload_max_filesize=200 M 这里修改满足你需要的大小,可以同时修改其他两项 memory_limit=250M post_max_size=200M这样就可以导入 200M以下的.sql 文件了。以上文章由 808影视网收集与提供

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。