海运的博客

Mysql插入UTF8带BOM变成0

发布时间:September 20, 2015 // 分类:数据库 // No Comments

使用PHP读取文件写入数据库遇到一个灵异的问题,第一行第一列内容插入后变成0,查看文件第一行开头为BOM格式:

head -n 1 file | hexdump -C
ef bb bf

删除BOM解决:

sed -i '1 s/^\xef\xbb\xbf//' file

MySQL主从同步配置

发布时间:May 8, 2014 // 分类:数据库 // No Comments

Master配置:

log-bin = mysql-bin
server-id = 1
binlog-do-db = powerdns #要同步的数据库

Master新增slave账号:

mysql> grant replication slave on *.* to 'slave'@'192.168.1.2' identified by 'passwd';  
mysql> flush privileges; 

重启Master MySQL,查看Master状态信息,记住File名称,POS位置。

mysql> show master status;  
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      309 | powerdns     | mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Slave配置:

server-id =2 
slave-skip-errors = 1062 #跳过重复字段错误

开始同步:

mysql> change master to master_host='192.168.1.1',master_user='slave',master_password='passwd',\
master_log_file='mysql-bin.000002',master_log_pos=309;  
mysql> start slave;

查看Slave同步状态:

mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

MySQL插入存在覆盖

发布时间:April 9, 2014 // 分类:数据库 // No Comments

1.当插入列为主健或单一索引(可多列)值重复时执行update操作:

INSERT INTO `records` (`domain_id`, `name`, `TYPE`, `content`, `ttl`) VALUES 
(:id, :name, :type, :content, :ttl) ON DUPLICATE KEY UPDATE `change_date` = '1';

2.重复时先删除之前数据再插入新数据:

REPLACE INTO `records` (`domain_id`, `name`, `TYPE`, `content`, `ttl`) VALUES 
(:id, :name, :type, :content, :ttl);

此内容被密码保护

发布时间:December 23, 2013 // 分类:数据库 // No Comments

请输入密码访问

从文本导入数据到数据库

发布时间:December 9, 2013 // 分类:PHP,数据库 // No Comments

文本多列以,分隔,导入到指定字段:

load data local infile "file.txt" into table db.table FIELDS TERMINATED BY ',' (name,address);
load data local infile "file.txt" into table db.table (name,address) FIELDS TERMINATED BY ',';
update db.table SET aaa = 'test'; 

也可使用PHP以数组的方式逐行插入,自定义方便。

<?php  
   $hostname="localhost";
   $username="root";
   $password="passwd";  
   $dbname="dbname";
   mysql_connect($hostname,$username,$password);
   mysql_select_db("$dbname");
   $mydate=file("/root/m.txt");
   $n=count($mydate);
   for($i=0;$i<$n;$i++){
      $date=explode(",",$mydate[$i]);
      $str="insert into table (name,address) values ('$date[0]','$date[1]')";
      mysql_query($str);
   }
   mysql_close();
   echo "ok!";
?> 
分类
最新文章
最近回复
  • track: NAT 部分没处理,这块感觉有问题。
  • yu: 查到有用的资料很幸福!
  • boscotsang: 请问下服务器端如何控制权限让通过权限认证的客户端才能连接?现在这样只要有自编译的客户端程序都可...
  • yck932: 大侠,请问哪里有 tunnels 详细参考资料,谢谢
  • bubble: 现在linux 4.9以上的内核有个bbr的参数,用这个bbr比用锐速效果更好,可参考我的博文...
  • wang: openwrt 只有 tmp/etc/miniupnpd.conf 修改后又重置了,其他路径找...
  • wbq: 可以了 只是https透明代理如何做呢?
  • wbq: 你的这个配置需要浏览器设置代理ip+port, 现在假设不设置,只配置客户端网关为Nginx那...
  • wbq: 您好,想用Nginx做个透明代理,客户端机器配置下网关(即Nginx那台机器),客户端dns配...
  • ccc: 可以提供易调用openssl常用函数吗?