1. phpMyAdmin连接mysql出现错误:使用phpMyAdmin 连接MySql数据库时出现如下错误: #1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 错误原因:原因是因为你使用的mysql服务器版本中使用了新的密码验证机制,这需要客户 端的版本要在4.0以上,原来的密码函数被改为old_password ();,这样使用password()生成的密码在旧的版本上的客户端就不好使了,而PHP中的MYSQL客户端都是3.23的(当然,mysqli的扩展除外),问题就在这了。这种问题只在Mysql 4.1.x以上的版本才会出现的。 解决办法: a) 升级mysql 客户端的版本; b) 也可以在服务器上用old_password函数,将用户的密码重新设置一下,具体的方法是: mysql>set password for 'root'@'localhost'=old_password('123'); 然后就可以用旧版本的客户端来连接了。 2. mysql 启动指定my.cnf文件路径:要使用指定的my.cnf文件,而不用默认的/etc/my.cnf文件,可以在启动时,在mysqld_safe 后加上参数--defaults-file=/usr/local/server/mysql2/etc/my.cnf 但是要注意的是,主参数必需紧接着mysqld_safe 后面,如果做第二个以后的参数加入时,则会出现如下错误: /usr/local/server/mysql/libexec/mysqld: unknown variable 'defaults-file=/usr/local/server/mysql2/etc/my.cnf' 且服务器启不来。 3. 当启动innodb错误:InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 268435456 bytes! 100204 15:24:39 [ERROR] Plugin 'InnoDB' init function returned error. 出现这个错误的原因是$datadir下的ibdata1和ib_logfile*文件的大小与my.cnf指定的大小不一至造的,可以将这几个文件删除掉,然后重启mysql,让其重新生成这些文件。 4. mysql建立,查看和删除自定义函数:查看:SHOW FUNCTION STATUS;可以列出某个数据库所弄有的自定义函数 show create function 函数名; 查出自定义函数的内容; 建立: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 这是因为我们启用了bin-log日志的的原因 Delimiter $$ 设置语句的分隔符,也就是一个语句的结束符,因为默认情况下,mysql 的语句结束符是; 而我们在建立自定义函数,可能要使用这个;号,所以我们需要将分隔符换成其它们的。,这里换成$$ CREATE DEFINER=`root`@`` FUNCTION `sseq`(seq_name VARCHAR(50)) RETURNS int(11) BEGIN DECLARE value INTEGER; SET value = 0; SELECT current_value INTO value FROM sequence WHERE name = seq_name; RETURN value; END $$ 建立一个自定义的函数 sseq 执行:要执行上述函数,可以使用下列方法 select sseq('poi_seq'); 删除:drop function sseq ;
5. mysql建立,查看和删除过程:建立:delimiter $$ create procedure insert_last(out cnt int) begin declare maxid int; select max(id)+1 into maxid from account; insert into account(id,name) values(maxid,'hello'); select count(id) into cnt from account; END$$ 查看:show procedure status ; show create procedure insert_last; 执行: call insert_last(@a) 删除: drop procedure insert_last; 6. 当出现ERROR 1449错误:现象: 当在系统中执行查询时,特别是执行自定义函数或过程时,出现如下错误: ERROR 1449 (HY000): The user specified as a definer ('root'@'') does not exist 原因: 系统中不存在root@用户,而执行上述命令时,使用的刚好是root@用户,所以就报上 述错误; 解决:执行下列语句,建立对应的用户即可: grant all on *.* to root@% identified by 'admin8*';
7. mysql 指定监听指定的IP地址 默认的情况,mysql 在启动时会监听本机的所有的IP地址的3306端口,当为满足某些要求时,可以指定mysql 在启动时监听指的IP,方法是:在my.cnf文件里的mysqld段里添加bind-address = 122.224.72.119,这样就可以只监听指定的一个IP了。目前mysql 还不能做做监听多个指定的IP 地址
8. 关于mysql的版本号 以下是关于mysql版本号的含义,例如mysql-5.1.42版本的 其中5 :表示主版本号和文件格式。所有mysql 5系列的都具有相同的文件格式; 第二个数字1:表示发布的版本号。主版本号和发布版本号联合起来组成发布序列号; 第三个数字42:表示某个发布序列里的版本号。这个版本号会随着每次版本的发布而增加。通常应该选择序列里的最近的版本进行使用。 每次较小的更新,版本序列号中的最后一个数字会增加。当有大的新特性或者更新内容与前面一个版本不兼容时,第二个数字会增加的。而当文件格式改变的时候,第一个数字会增加的。 版本名称中还可能包含一个后缀来表示发布版本的稳定性的。在发布的系列版本中有一套后缀来表示稳定性改进,这些后缀包括: Alpha:表示这个版本仅是一个演示版本。已知的bug已经被记录了。大多数的alpha 版本都添加了新的命令和扩展。 Beta:表示这个版本可以用在开发环境中。在测试版中,特性和兼容性问题可能已 经被解决了,但是测试版本中可能会存未标识的bug。且这个版本中的所有API,扩展的结构,SQL语法在beta版本的后续版本中都不会被改变。 Rc: 表示待发行版。待发行版确信是稳定的版本,而且在MySQL内部进行的测试都 通过了,同时,所有已知的运行期的重大Bug都被修正了。然而,这个版本并没有经过长期大范围的使用,以确认所有的bug都被标识了。 没有任何后缀:表示这个版本是通用版本(GA)或者产品版本。GA版是稳定的版 本,并且成功的进行前面几个版本的过程,而且确信是可靠的,没有紧急的bug,同时适合应用于生产环境中。
9. 关于mysql编译与性能的关系 1. 、在linux平台上,如果编译成动态连接的(即没有使用-static选项),那么要慢13%。但是要注意:为满足客户应用的需要,可能还是需要编译动态连接的; 2. 对于服务器和客户端在同一台机器上的连接,如果使用TCP/IP连接要比使用socket连接性能低7.5%(在unix平台上,如果连接的主机名用localhost,MySQL默认使用socket文件来连接); 3. 如果使用TCP/IP连接,客户端和服务器端不在同一台机器上要比在同一台机器上慢8%-10%,即使用网卡的速度高于100Mb/s; 4. 使用安全连接(所有数据使用内部SSL支持的加密)性能要比非安全连接低55%; 5. 在Sun UltraSPARC 平台上,使用Forte5.0来编译要比使用gcc3.2编译后的快4%; 6. 在Sun UltraSPARC平台上,使用Forte5.0编译成32模式要比编译成64模式快4%; 7. 在Linux X86平台上,使用不带gcc的框架指针(即不使用-fomit-frame-pointer 或 –fomit-frame-pointer –ffixed-ebp),将会使用mysqld快1%-4%;
10. 设置最大连接数 1)入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可; 2)MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppassword设置新 的最大连接数为200:mysql> set GLOBAL max_connections=200 |
|