收藏 分销(赏)

一些Mysql的常见问题.doc

上传人:xrp****65 文档编号:7654683 上传时间:2025-01-11 格式: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-ppassworddateabaseQ:忘记MySQL的root密码,怎么修改如果MySQL正在运行,首先杀之:killall-TERMmysqld。启动MySQL:PATH_TO_MYSQL/bin/mysqld-skip-grant-tables&就可以不需要密码就进入MySQL了。然后就是mysqlusemysqlmysqlupdateusersetpassword=password(new_pass)whereuser=root;

2、mysqlflushprivileges;重新杀MySQL,用正常方法启动MySQL一定注意:很多新手没有用password=password(.),而是直接password=.所以改掉密码不好使Q:为什么mysqld起来了,却无法登录,提示/var/lib/mysql/mysql.sock不存在这种情况大多数是因为你的mysql是使用rpm方式安装的,它会自动寻找/var/lib/mysql/mysql.sock这个文件,通过unixsocket登录mysql。常见解决办法如下:1、创建/修改文件/etc/f,至少增加/修改一行mysqlclientsocket=/tmp/mysql.soc

3、k#在这里写上你的mysql.sock的正确位置,通常不是在/tmp/下就是在/var/lib/mysql/下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-pxxxmysqlmysqlupdateusersetpassword=password

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

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

6、的web页来访问了。mysqlgrantselect,insert,update,deleteonmydb.*totest2localhostidentifiedbyabc;如果你不想test2有密码,可以再打一个命令将密码消掉。mysqlgrantselect,insert,update,deleteonmydb.*totest2localhostidentifiedby;另外,也可以通过直接往user表中插入新纪录的方式来实现。Q:如何查看mysql有什么数据库mysqlshowdatabases;Q:如何查看数据库下有什么表mysqlshowtables;Q:如何导出数据有几种方法,如下

7、:1、使用mysqldump#mysqldump-uuser-ppassword-Bdatabase-tablestable1-tablestable2dump_data_20051206.sql详细的参数2、backupto语法mysqlBACKUPTABLEtbl_name,tbl_name.TO/path/to/backup/directory;详细请查看mysql手册3、mysqlhotcopy#mysqlhotcopydb_name/path/to/new_directory或#mysqlhotcopydb_name_1.db_name_n/path/to/new_directory

8、或#mysqlhotcopydb_name./regex/详细请查看mysql手册4、selectintooutfile详细请查看mysql手册5、客户端命令行#mysql-uuser-ppassword-esqlstatementsdatabaseresult.txt以上各种方法中,以mysqldump最常用Q:如何在命令行上执行SQL语句#mysql-uuser-ppassword-esqlstatementsdatabaseQ:如何导入备份出来的文件常见几种方法如下:1、由mysqldump出来的文件#mysql-uuser-ppassworddatabasesource/path_to

9、_file/dump.sql;3、按照一定格式存储的文本文件或csv等文件#mysqlimportoptionsdatabasefile1file2.详细请查看mysql手册4、文件类型同上,也可以使用loaddata语法导入详细请查看mysql手册Q:如何为mysql添加root远程登录权限默认情况下,MySQL之允许本地登录,需要修改/etc/mysql/f文件:注释这一行:bind-address=127.0.0.1 = #bind-address=127.0.0.1对于需要远程登录的用户执行如下命令:mysql GRANT ALL PRIVILEGES ON *.* TOroot% I

10、DENTIFIED BY yourpasswd;mysql flush privileges;Q:如何MySQL备份与恢复备份数据库(包含全部表和全部存储过程):C:Documents and SettingsAdministratormysqldump -h localhost -u root -p -R bannei d:/log/mydb.sqlEnter password: */备份数据库所有表C:Documents and SettingsAdministratormysqldump -h localhost -u root -p jxhxt d:/log/bn2010-01-29.

11、sqlEnter password: */备份数据库中指定表数据C:Documents and SettingsAdministratormysqldump -h localhost -u root -p jxhxt invite_mail d:/log/bn2010-01-29.sqlEnter password: */备份全部存储过程C:Documents and SettingsAdministratormysqldump -h localhost -u root -p -t -d -R bannei d:/log/myproc.sqlEnter password: */导出一个数据库结

12、构C:Documents and SettingsAdministratormysqldump -u root -p -d -add-drop-table ruyi_dbd:ruyi_db.sql/导入数据文件C:Documents and SettingsAdministratormysql-h localhost -u root -p bannei use 数据库然后使用source命令,后面参数为脚本文件(如这里用到的.sql)mysqlsource d:ruyi_db.sql1、mysqldump1.1 备份mysqldump是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件

13、,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下mysqldump的一些主要参数:1. -compatible=name它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的MySQL服务器相兼容。值可以为ansi、 mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、 no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。2. -complete-insert,-c导出的数

14、据采用包含字段名的完整INSERT方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。3. -default-character-set=charset指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。4. -disable-keys告诉mysqldump在INSERT语句的开头和结尾增加/*!40000 ALTER TABLE table DISABLE KEYS */;和/*!4000

15、0 ALTER TABLE table ENABLE KEYS */;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合MyISAM表。5. -extended-insert = true|false默认情况下,mysqldump开启-complete-insert模式,因此不想用它的的话,就使用本选项,设定它的值为false即可。6. -hex-blob使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有BINARY、VARBINARY、 BLOB。7. -lock-all-tables,-x在开始导出之前,提交请求锁

16、定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭-single-transaction和-lock-tables选项。8. -lock-tables它和-lock-all-tables类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于MyISAM表,如果是Innodb表可以用-single-transaction选项。9. -no-create-info,-t只导出数据,而不添加CREATE TABLE语句。10. -no-data,-d不导出任何数据,只导出数据库表结构。11. -opt这只是一个快捷选项,等同于同时添加-add-drop

17、-tables -add-locking -create-option -disable-keys -extended-insert -lock-tables -quick -set-charset选项。本选项能让mysqldump很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用-skip-opt禁用。注意,如果运行mysqldump没有指定-quick或-opt选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。12. -quick,-q该选项在导出大表时很有用,它强制mysqldump从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。1

18、3. -routines,-R导出存储过程以及自定义函数。14. -single-transaction该选项在导出数据之前提交一个BEGINSQL语句,BEGIN不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如InnoDB和BDB。本选项和-lock-tables选项是互斥的,因为LOCK TABLES会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用-quick选项。15. -triggers同时导出触发器。该选项默认启用,用-skip-triggers禁用它。其他参数详情请参考手册,我通常使用以下 SQL 来备份MyISAM表:/usr/local/my

19、sql/bin/mysqldump -uyejr -pyejr -default-character-set=utf8 -opt -extended-insert=false -triggers -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_

20、name db_name.sql另外,如果想要实现在线备份,还可以使用-master-data参数来实现,如下:/usr/local/mysql/bin/mysqldump -uyejr -pyejr -default-character-set=utf8 -opt -master-data=1 -single-transaction -flush-logs db_name db_name.sql它只是在一开始的瞬间请求锁表,然后就刷新binlog了,而后在导出的文件中加入CHANGE MASTER语句来指定当前备份的binlog位置,如果要把这个文件恢复到slave里去,就可以采用这种方法来

21、做。1.2 还原用mysqldump备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。1. 直接用mysql客户端例如:/usr/local/mysql/bin/mysql -uyejr -pyejr db_name 我的电脑-属性-环境变量-新建-PATH=“;pathmysqlbin;”其中path为MYSQL的安装路径。二.简单的介绍一下命令行进入MYSQL的方法:1.C:mysql-h hostname -u username -p按ENTER键,等待然后输入密码。这里hostname为服务器的名称,如localhost,username为MYSQL的用户名,

22、如root。进入命令行后可以直接操作MYSQL了。2.简单介绍一下MYSQL命令:mysql-CREATE DATABASE dbname;/创建数据库mysql-CREATE TABLE tablename;/创建表mysql-SHOW DATABASES;/显示数据库信息,有那些可用的数据库。mysql-USE dbname;/选择数据库mysql-SHOW TABLES;/显示表信息,有那些可用的表mysql-DESCRIBE tablename;/显示创建的表的信息三.从数据库导出数据库文件:1.将数据库mydb导出到e:mysqlmydb.sql文件中:打开开始-运行-输入cmd 进

23、入命令行模式c:mysqldump -h localhost -u root -p mydb e:mysqlmydb.sql然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。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

24、 -p mydb -add-drop-table e:mysqlmydb_stru.sql四.从外部文件导入数据到数据库中:从e:mysqlmydb2.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影视网收集与提供

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服