Mysql管理总结
思韵闪耀
2014-10-10
0
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 函数名; 查出自定义函数的内容;

建立:
     set global log_bin_trust_function_creators=1  设置上述的变量值为1,否则在建    立时会出现如下错误: 

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


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

将IIS设置克隆到新服务器...
将IIS设置克隆到新服务器的最佳方法是使用IIS配置文件。以下是详...
2025-06-06
搭建Git服务器及本机克隆...
Git是什么?Git是目前世界上最先进的分布式版本控制系统。SVN...
2025-03-17
ubuntu环境下搭建gi...
操作环境:服务器:Ubuntu 24.04.2 LTS+git 2...
2025-03-17
Linux系统挂载未分配硬...
先查看未挂载之前的磁盘使用情况发现磁盘使用率已经达到了96%,迫切...
2025-02-22
Linux lsblk 命...
简介Linux 中的 lsblk 命令,全称叫做:list blo...
2025-02-22
SqlServer 数据库...
--查看数据库大小SELECT DB_NAME(database_...
2024-09-03

热门资讯

MySQL权限篇之REPLIC... MySQL权限篇之REPLICATION CLIENT及REPLICATION SLAVE REPL...
configure: erro... php编译后出现这样的信息 以上略 checking for MySQLi support... y...
MySQL清屏命令 在Linux系统下MySQL的清屏命令 MySQL在Linux系统下,输入system clear即...
Skip-External-L... MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参数,即跳...
MySQL 的复合查询或者嵌套... MySQL 的复合查询或者嵌套查询,有表两张,要以 tmpa 表两张为表列,将 tmpb 横向列出,...
MySQL创建用户与授权 一. 创建用户 命令: CREATE USER username@host IDENTIFIED B...
mysql 如何跟踪_MySQ... 在项目开发中,难免会遇到在数据库服务器端跟踪sql执行语句的需求,通过跟踪sql执行语句,我们可以确...
Mysql服务器无法启动 一、Mysql服务器无法启动,错误日志中提示: ^G/usr/local/mysql/bin/mys...
MySql ManifestU... 解决 MySql ManifestUpdate 通过执行计划关闭的方式,不适用超级权限管理人员(公司...
给MySQL的备份账户添加权限 给MySQL的备份账户添加权限 MySQL的备份可以说是重中之重,毕竟数据是一个网站的命脉。 但是备...