免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 203406 | 回复: 146
打印 上一主题 下一主题

[注意 最新FAQ]MySQL版FAQ[包治'MySQL'百病] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-05 21:06 |只看该作者 |倒序浏览
首先,MySQL已经有中文手册了,详见 http://dev.mysql.com/doc/refman/5.1/zh/index.html

Q: 如何让我的MySQL支持中文
A:

  1. 以下十几个相关的链接,包括字符集支持等问题,都可以看看
  2. http://bbs.chinaunix.net/viewthread.php?tid=444009&extra=page%3D1%26filter%3Ddigest
  3. http://bbs.chinaunix.net/viewthread.php?tid=732610&extra=page%3D1%26filter%3Ddigest
  4. http://bbs.chinaunix.net/viewthread.php?tid=702090&extra=page%3D1%26filter%3Ddigest
  5. http://imysql.cn/index.php?q=node/20
复制代码


Q: 如何安装LAMP(Linux+Apache+MySQL+PHP)
A:

  1. http://www.freelamp.com/1003235699/index_html
复制代码


Q: 如何使用rpm方式安装mysql
A:

  1. 首先下载合适的rpm包,例如下载了文件 MySQL-5.0.15-0.i386.rpm
  2. 用一下方法安装:
  3. #rpm -ivhU MySQL-5.0.15-0.i386.rpm
  4. 通常情况下,安装完这个rpm包后,只具备有mysqld服务功能,其它相关的client程序和开发包还需要另外安装
  5. #rpm -ivhU MySQL-devel-5.0.15-0.i386.rpm
  6. #rpm -ivhU MySQL-client-5.0.15-0.i386.rpm
复制代码


Q: 如何安装已经编译好了的mysql二进制包
A:

  1. 首先下载合适的二进制包,例如下载了文件 mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
  2. #groupadd mysql
  3. #useradd -g mysql mysql
  4. #cd /usr/local
  5. #tar zxf mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
  6. #ln -s mysql-standard-4.1.13-pc-linux-gnu-i686 mysql
  7. #cd mysql
  8. #scripts/mysql_install_db --user=mysql
  9. #chgrp -R mysql *
  10. #bin/mysqld_safe --user=mysql &
  11. 有什么个性化的配置,可以通过创建 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf,增加相关的参数来实现。
复制代码


Q: 如何自己编译mysql
A:

  1. 以redhat linux 9.0为例:
  2. 下载文件 mysql-4.1.13.tar.gz
  3. #tar zxf mysql-4.1.13.tar.gz
  4. #cd mysql-4.1.13
  5. #./configure --prefix=/usr/local/mysql --enable-assembler \
  6. --with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data \
  7. --with-unix-socket-path=/tmp/mysql.sock --enable-assembler \
  8. --with-charset=complex --with-low-memory --with-mit-threads
  9. #make
  10. #make install
  11. #groupadd mysql
  12. #useradd -g mysql mysql
  13. #chgrp -R mysql /usr/local/mysql/
  14. #/usr/local/mysql/bin/mysqld_safe --user=mysql &
  15. 有什么个性化的配置,可以通过创建 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf,增加相关的参数来实现。
复制代码


Q: 如何登录MySQL
A:

  1. 使用mysql提供的客户端工具登录
  2. #PATH_TO_MYSQL/bin/mysql -uuser -ppassword dateabase
复制代码


Q: 忘记MySQL的root密码,怎么修改
A:

  1. 如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
  2. 启动 MySQL :PATH_TO_MYSQL/bin/mysqld --skip-grant-tables &
  3. 就可以不需要密码就进入 MySQL 了。
  4. 然后就是
  5. mysql>use mysql
  6. mysql>update user set password=password("new_pass") where user="root";
  7. mysql>flush privileges;
  8. 重新杀 MySQL ,用正常方法启动 MySQL
  9. 一定注意:很多新手没有用password=password("..."),而是直接password="..."所以改掉密码不好使
复制代码


Q: 为什么mysqld起来了,却无法登录,提示"/var/lib/mysql/mysql.sock"不存在
A:

  1. 这种情况大多数是因为你的mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,
  2. 通过unix socket登录mysql。
  3. 常见解决办法如下:
  4. 1、
  5. 创建/修改文件 /etc/my.cnf,至少增加/修改一行
  6. [mysql]
  7. [client]
  8. socket = /tmp/mysql.sock
  9. #在这里写上你的mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下

  10. 2、
  11. 指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式
  12. #mysql -h127.0.0.1 -uuser -ppassword

  13. 3、
  14. 为 mysql.sock 加个连接,比如说实际的mysql.sock在 /tmp/ 下,则
  15. #ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可
复制代码


Q: 如何修改mysql用户密码
A:

  1. 大致有2种方法:
  2. 1、
  3. mysql>mysql -uroot -pxxx mysql
  4. mysql>update user set password=password('new_password') where user='user';;
  5. mysql>flush privileges;

  6. 2、
  7. 格式:mysqladmin -u用户名 -p旧密码 password 新密码
  8. #mysqladmin -uroot -password ab12
  9. 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
复制代码


Q: 如何新增一个mysql用户
A:

  1. 格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
  2. 例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
  3. mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
  4. 但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
  5. 例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
  6. mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
  7. 如果你不想test2有密码,可以再打一个命令将密码消掉。
  8. mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
  9. 另外,也可以通过直接往user表中插入新纪录的方式来实现。
复制代码


Q: 如何查看mysql有什么数据库
A:

  1. mysql>show databases;
复制代码


Q: 如何查看数据库下有什么表
A:

  1. mysql>show tables;
复制代码


Q: 如何导出数据
A:

  1. 有几种方法,如下:
  2. 1、使用mysqldump
  3. #mysqldump -uuser -ppassword -B database --tables table1 --tables table2 > dump_data_20051206.sql
  4. 详细的参数

  5. 2、backup to语法
  6. mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';
  7. 详细请查看mysql手册

  8. 3、mysqlhotcopy
  9. #mysqlhotcopy db_name [/path/to/new_directory]

  10. #mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

  11. #mysqlhotcopy db_name./regex/
  12. 详细请查看mysql手册

  13. 4、select into outfile
  14. 详细请查看mysql手册

  15. 5、客户端命令行
  16. #mysql -uuser -ppassword -e "sql statements" database > result.txt

  17. 以上各种方法中,以mysqldump最常用
复制代码


Q: 如何在命令行上执行SQL语句
A:

  1. #mysql -uuser -ppassword -e "sql statements" database
复制代码


Q: 如何导入备份出来的文件
A:

  1. 常见几种方法如下:
  2. 1、由mysqldump出来的文件
  3. #mysql -uuser -ppassword [database] < dump.sql

  4. 2、文件类型同上,使用source语法
  5. mysql>source /path_to_file/dump.sql;

  6. 3、按照一定格式存储的文本文件或csv等文件
  7. #mysqlimport [options] database file1 [file2....]
  8. 详细请查看mysql手册

  9. 4、文件类型同上,也可以使用load data语法导入
  10. 详细请查看mysql手册
复制代码


Q: 如何快速设定MySQL同步
A:

  1. 详情请参见 http://imysql.cn/index.php?q=node/73
复制代码


Q: MySQL升级过程中都应该注意什么问题
A:

  1. 详情请参见 http://imysql.cn/index.php?q=node/74
复制代码


Q: 如何分析MySQL的运行状态
A:

  1. 介绍一个开源的工具,详情请参考 http://hackmysql.com/mysqlreport
复制代码


其他更多的FAQ请查看这里
  1. http://imysql.cn/?q=node/151
复制代码

[ 本帖最后由 yejr 于 2006-11-16 18:06 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-12-05 21:11 |只看该作者
今天正好心情不好,也正好赶上有空,就顺便把faq整理一番,平静一下心情,哈哈。
这只是初稿,欢迎鸡蛋或者西红柿,我也随时整理,直到差不多了就重新整理成新贴,并且锁定。
本版的法帖规则还在整理中,欢迎意见。

论坛徽章:
0
3 [报告]
发表于 2005-12-06 09:55 |只看该作者
支持一下,

论坛徽章:
0
4 [报告]
发表于 2005-12-07 09:51 |只看该作者
非常棒,感谢版主了。辛苦了,希望多多出点这方面的资料

论坛徽章:
0
5 [报告]
发表于 2005-12-07 11:00 |只看该作者
还有停止mysql服务

mysqladmin shutdown -uroot -p

论坛徽章:
0
6 [报告]
发表于 2005-12-09 22:05 |只看该作者
支持一下了。很不错。

论坛徽章:
0
7 [报告]
发表于 2005-12-13 14:13 |只看该作者

把这个也加上吧,问的人太多了。

"Client does not support authentication protocol requested by server"

A.2.3 Client does not support authentication protocol
MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attempts to connect to it with an older client may fail with the following message:

shell> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client

To solve this problem, you should use one of the following approaches:

1。Upgrade all client programs to use a 4.1.1 or newer client library.
2。When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.
3。Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function: mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

Alternatively(或者), use UPDATE and FLUSH PRIVILEGES: mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

Substitute the password you want to use for ``newpwd'' in the preceding examples. MySQL cannot tell you what the original password was, so you'll need to pick a new one.
4。Tell the server to use the older password hashing algorithm:
a。Start mysqld with the --old-passwords option.
b。Assign an old-format password to each account that has had its password updated to the longer 4.1 format. You can identify these accounts with the following query: mysql> SELECT Host, User, Password FROM mysql.user
-> WHERE LENGTH(Password) > 16;

For each account record displayed by the query, use the Host and User values and assign a password using the OLD_PASSWORD() function and either SET PASSWORD or UPDATE, as described earlier.

For additional background on password hashing and authentication, see section 5.5.9 Password Hashing in MySQL 4.1.

还有一个保证不会出现这个情况的方案,就是一开始编译 php 的时候指定安装的 mysql 的目录:--with-mysql=/path/to/mysql,不要仅用 --with-mysql(这样会使用 php 自带的 mysql 客户端,问题就在这里),在 php 的手册安装章节有提到这个内容。

论坛徽章:
0
8 [报告]
发表于 2005-12-13 18:05 |只看该作者
谢谢各位支持,抽空增加新的东西

论坛徽章:
0
9 [报告]
发表于 2005-12-13 18:45 |只看该作者
支持一下

论坛徽章:
0
10 [报告]
发表于 2005-12-13 20:08 |只看该作者
有没有好用的图形界面客户端?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP