文档标签: 数据库
前一段时间在同事的电脑上配置了数据库同步的功能。
运行了大概半个月后出现了如下错误:
输入的命令是:show slave status\G;
[php]
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1594
Last_SQL_Error: Relay log read failure: Could not parse relay lo
event entry. The possible reasons are: the master's binary log is corrupted (y
u can check this by running 'mysqlbinlog' on the binary log), ...
在做mysql主从同步的时候设置了本机为从数据库,但是后来又想删除这个从的同步数据。
下面是网上找到的方法,测试过了可行!
如何干净的清除Slave同步信息【小技巧】
1. mysql> show slave status\G;
2. *************************** 1. row ***************************
3. Slave_IO_State: Waiting for master to send event
4. Master_Host: 192.168.8.22
5. Master_User: repl
6. Master_Port: 3306
7. Connect_Retry: 10
8. Master_Log_File: mysql-b...
本机昨天刚配置的mysql主从同步,今天重新拷了一下数据就出现错误!在网上看到这个错误的解决方法:
原因:
程序可能在slave上进行了写操作 。(我确定这样操作过。)
也可能是slave机器重起后,事务回滚造成的.
解决方案:
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> START SLAVE;
然后检查mysql slave的状态
mysql> show slave status\G;
如果确定1062错误码,不会对系统造成影响,可以修改my.cnf。增加如下行,记住重启mysqld服务。
slave-skip-errors = 1062
还有一种解决数据同步的错误方法:
有时候会出现Slave在执行SQL时出错,然后Slave_SQL_Running 变成False,修复办法:
1.stop slave;
2.SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
3.sta...
由于公司的一些软件操作数据库比较平凡,但主要是查询操作,反应时间过长,导致公司很多员工的工作效率一直提不上去!于是想到了数据库的同步,查询就查询本地的数据库,添加就添加到主数据库上去!
这样在局域网查询起来应该速度要快很多!
下面来看一下具体的操作步骤:
1、配置远程数据库即主数据库:
登录Master服务器,编辑my.cnf
#vim /etc/my.cnf
在[mysqld]段添加以下内容:
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=extmail
binlog-ignore-db=mysql,test
解释:log-bin项是让Master服务器记录二进制日志这个是必须的;
server-id=master_id 其中master_id必须为1到232–1之间的一个正整数值;
binlog-do-db=database 是要记录日志的数据库;
binlog-ignore-db 是不要记录日志的数据库名,多个数据库中间用逗号(,)隔...
mysql 忘记密码解决方法
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。
因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的
状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对
外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全
状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。
2.修改MySQL的登录设置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存并且退出vi。
3.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
...
MYSQL修改字段默认值
alter table tablename alter column drop default; (若本身存在默认值,则先删除)
alter table tablename alter column set default 't5';(若本身不存在则可以直接设定)
如果是主键,这样修改是失败的!
就这样修改:
alter TABLE tablename AUTO_INCREMENT=100000...
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。
但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。
但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。
You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times.
搜索Google,网上基本上都是查询max(id) * r...
php无限分类,有可能要用到这个函数。
MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习。
MySQL concat函数使用方法:
CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
注意:
如果所有参数均为非二进制字符串,则结果为非二进制字符串。
如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:
SELECT CONCAT(CAST(int_col AS CHAR), char_col)
MySQL concat函数可以连接一个或者多个字符串,如
[php]
mysql> select concat('10');
+--------------+
| concat('10') |
+----------...
做PHP开发这块一直在用mysql数据库,虽然对其基本的一些字段信息还是能理解,但是都不是很完全和系统!在后期对mysql数据进行优化的时候也出现了盲点,于是认真的学习一下mysql里的面知识很有必要!
数值类型
MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。
表列出了各种数值类型以及它们的允许范围和占用的内存空间。
类型
大小
范围(有符号)
范围(无符号)
用途
TINYINT
1 字节
(-128,127)
(0,255)
小整数值
SMALLINT
2 字节
(-32 768,32 767)
(0,65 535)
大整数值
MEDIUMINT
3 字节
(-8 388 608,8 388 607)
...
刚看到写一同行写的这篇文章,以前没有看到过!感觉比较实用,转载了!
以前做数据库连接的时候一直都是用mysql_query获取结果集,最近在手册上看到还有一个是mysql_unbuffered_query函数,它的意思是不自动获取和缓存结果集,这样的好处是可以节省大量的内存。缺点是有两个函数不能使用,分别是mysql_num_rows和mysql_data_seek函数。
经过自己的比较的确是比用mysql_query要快一些,可能是数据比较大的时候比较明显吧。不管怎么说能快一点也好一点,各个方面都快一些,那么积累起来就很不错了。
文章来源:http://www.phpyuandi.com/read-17342.html...
最近在看一个关于无限分类的缓存技术。
php+mysql缓存技术的实现
本教程适合于那些对缓存SQL查询以减少数据库连接与执行的负载、提高脚本性能感兴趣的PHP程序员。
概述
许多站点使用数据库作为站点数据存储的容器。数据库包含了产器信息、目录结构、文章或者留言本,有些数据很可能是完全静态的,这些将会从一个缓存系统中得到的极大好处。
这样一个系统通过把SQL查询的结果缓存到系统的一个文件中存储,从而阻止连接数据库,构造查询与取得返回结果而提高了响应时间。
有些系统数据库并不是放在WEB服务器上的,这样需要一个远程连接(TCP或者其它类似的),或者从数据库中获取大量的数据,这样你得忍受更多时间,这决定于系统响应时间与资源利用。
前提
本教程使用MySQL作为数据库。你需要安装MySQL(www.mysql.com下载是有效的)和激活PHP MYSQL扩展(默认情况是激活的)。
由于要查询数据库,你需要知识一些SQL(结构化查询语言)的基本常识。
缓存SQL查询结果
为什么要缓存查询结果?
缓存查询结果能极大...
今天在做一个统计的时候,有些字段信息为空null
以为是这样写的查询条件:
[php]
select * from tbl_msg where PID = '';
[/php]
发现没有查询到数据,
改成:
[php]
select * from tbl_msg where PID = NULL;
[/php]
也没有数据出来.
最后修改成了
[php]
select * from tbl_msg where PID IS NULL;
[/php]
平时注意一下mysql的这些基本命令还是有好处的....
MySQL命令行导出数据库:
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录
如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin
(或者直接将windows的环境变量path中添加该目录)
2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
如我输入的命令行:mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)
(如果导出单张表的话在数据库名后面输入表名即可)
3、会看到文件news.sql自动生成到bin文件下
命令行导入数据库:
1,将要导入的.sql文件移至bin文件下,这样的路径比较方便
2,同上面导出的第1步
3,进入MySQL:mysql -u 用户名 -p
如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)
4,在MySQL-Front中新建你要建的...
51 条记录 2/
4 页
上一页 下一页 1234