mysql编码

set names gbk 等同于以下3句 set character_set_client=gbk; 这句告诉 MySQL 我接下来要用的 SQL 语句的编码是 GBK 的 set character_set_connection=gbk; 这句 告诉 MySQL 要把 SQL 语句转换成 GBK 进行处理 set character_set_results=gbk; 这句告诉 MYSQL 查询返回的结果要统一都转换成 GBK 编码的 另外可以使用status命令或者show variables like ‘char%’ 查看当前数据库的默认编码状况 +————————–+—————————————–+ | Variable_name            | Value                     [...]

phpmyadmin里找不到gbk编码

装了新版的pma后,发现无法选择表的编码为gbk。发现是和新版mysql有关。 编译参数需要加上 ./configure –with-charset=gbk –with-collation=gbk_chinese_ci –with-extra-charsets=all –prefix=/usr/local/mysql 相关文章: mysql编码 远程连接mysql速度慢的解决办法 mysql物理备份恢复表丢失 关于leopard上safari的缓存 phpmyadmin出现access deny的错误

远程连接mysql速度慢的解决办法

在数据库服务器上修改配置文件my.cnf加入如下: [mysqld] skip-name-resolve 附: 说明关于mysql如何使用DNS 当一个新的客户端连接到mysqld时,mysqld会产生一个新的线程来处理这个请求。这个线程首先会检查主机名是否在缓存中存在,如果不存在,它将尝试解析这个主机名。 如果操作系统支持线程安全的gethostbyaddr_r() 和gethostbyname_r() 调用,这个线程会使用它们执行主机名解析。 如果操作系统不支持线程安全的调用,这个线程就会锁定一个互斥体并换为调用gethostbyaddr() 和gethostbyname() 。在这种情况下,第一个线程解锁互斥体之前,其他的线程将不能解析在缓存中不存在的主机名。 你可以通过添加–skip-name-resolve参数启动mysqld来禁用 DNS 主机名查询。但是这将导致你在MySQL的授权表中只能使用IP数字。 如果你使用一个很慢的DNS和许多主机,你可以通过添加–skip-name-resolve禁用域名查询或通过增加 HOST_CACHE_SIZE 定义的值(默认值: 128)并重新编译mysqld来提升性能。 你可以通过–skip-host-cache参数禁用主机名缓存。要清空主机名缓存,可以执行一个 FLUSH HOSTS 语句或执行mysqladmin中的flush-hosts命令实现。 要完全禁用ICP/IP连接,请添加 –skip-networking 启动mysqld。 相关文章: mysql编码 phpmyadmin里找不到gbk编码 mysql物理备份恢复表丢失 关于leopard上safari的缓存 phpmyadmin出现access deny的错误

mysql物理备份恢复表丢失

所谓物理备份,即直接拷贝相关的文件而不是通过mysqldump的方法备份数据库。 还原时将相应的文件拷贝回数据库即可。 基本操作: cp -r /var/db/mysql5/mydb ~/ 之后换台机器再拷贝回去 cp -r mydb /var/db/mysql5/ 通过如上的操作对于恢复MYISAM表没有问题,但是想恢复INNODB就危险了,我就遇上数据库中部分INNODB的表全不见了。 分析: INNODB表的数据是根据配置存放在.ibd文件或者ibdata文件中。主要分为独享表空间和共享表空间的存储方式。使用独享表空间时,文件保存为.ibd,文件存放在数据库目录下(和Myisam一样)。当使用共享表空间时,文件保存在ibdata文件。该文件通过innodb_data_home_dir和innodb_data_file_path两个参数共同配置。如果是只拷贝了数据库目录,而同时innodb的相关文件没拷贝自然就会丢失表了。另外要注意的是即使是独享表空间的方式,也需要拷贝共享表空间配置的相关文件。因为.ibd只是存放表数据,索引数据以及UNDO信息,REDO信息和元数据都是在共享表空间的文件中。 解决: 拷贝所有innodb需要的文件,包括.idb和ibdata以及ib_logfile(用于innodb的日志文件) 相关文章: mysql编码 phpmyadmin里找不到gbk编码 远程连接mysql速度慢的解决办法 关于leopard上safari的缓存 phpmyadmin出现access deny的错误

关于leopard上safari的缓存

在网上听歌时,想直接把好听的歌弄到本地来。windows上就会直接去temporary files目录下找缓存文件,但是用了leopard上的safari,怎么找呢? 首先网上查了下,确定了缓存文件的位置:/Users/yuyii/Library/Caches/com.apple.Safari/ 目录下只有一个文件,就是Cache.db,既然告诉我是db了,那就猜测下,直接用sqlite3开,果然可以(附带一提,mac上不少数据库都用的sqlite3的,包括用户信息的那个也是~因为MAC上的用户管理是有2套方案的,并不是仅仅使用*nix上的passwd加shadow的方式,具体感兴趣的可以去google) 打开后,一共3张表。关于一些实质性数据内容的都存放在cfurl_cache_blob_data表。然后就是找到我要的mp3了。实际是在这个字段:receiver_data。可以用sqlite3的length函数去估计下 select entry_ID,length(receiver_data) from cfurl_cache_blob_data order by entry_ID desc limit 10   .这边要注意下,别查所有的,数据量会很大的。如果想干净点的,可以先在safari上选清除缓存,然后再一步步来处理。 最后就是取出sqlite3的blob字段,然后保存为文件,这里我暂时没法直接用sqlite3命令读取出然后保存,好像要用到sqlite3的一些api函数。之后再做补充。 相关文章: mysql编码 phpmyadmin里找不到gbk编码 配置openvpn 远程连接mysql速度慢的解决办法 如何保障艳照在硬盘内的安全

| |

phpmyadmin出现access deny的错误

症状:在新编译的mysql上,始终无法用phpmyadmin登录。报错access deny。但是不输密码都可登录,却不能创建数据库。 原因:数据库中默认存在两条匿名用户权限的记录,权限查找时候不论输什么用户都匹配到那个去了,所以登录时候输入密码怎样都会出错,不输密码则已匿名权限登录只拥有usage权限。 解决:删除这2条就可以了。具体为在本地使用root登录。  use mysql  delete from user where User=”  FLUSH PRIVILEGES; 新加个账号给远端phpmyadmin使用: grant all on *.* to ‘yuyii’@’%’ identified by ’123456′;   补充: 今天发现似乎是PHPMYADMIN 3以上的版本对于root帐号有限制,不能用空密码登录。在配置文件中可改。 解决办法2个,一个就是加密码(上述的加个帐号其实是一样的),另外个就是修改PHPMYADMIN的配置。这样看来和远端与否无关了。 相关文章: mysql编码 phpmyadmin里找不到gbk编码 远程连接mysql速度慢的解决办法 mysql物理备份恢复表丢失 关于leopard上safari的缓存

Mysql 使用instr代替like

使用内部函数instr,可代替传统的like方式查询,并且速度更快。 instr函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 例如, select name from tpl_user where 1 and instr(`name`,’jack’); 可查询名字中带jack的名字。 相关文章: mysql编码 phpmyadmin里找不到gbk编码 远程连接mysql速度慢的解决办法 mysql物理备份恢复表丢失 关于leopard上safari的缓存

postgresql 在命令行下查看触发器

网上找了老半天都没。最后还是自己发现了。 首先用\d加表明确定该表的触发器函数名,然后用 \df+ 函数名 可以查看到详细的内容,+就是detail的意思,记下来,防止下次再忘记了。 相关文章: mysql编码 phpmyadmin里找不到gbk编码 远程连接mysql速度慢的解决办法 mysql物理备份恢复表丢失 关于leopard上safari的缓存

SQLITE时间函数的处理

取当前时间: select current_time   (取到是GMT时间) 取本地时间:select time(current_time,’localtime’) 取utc时间:select time(current_time,’utc’) 取两个时间的差:select julianday(end_time)-julianday(start_time)   得到的是天数,带小数。要去小数可以用round函数 其他: sqlite> SELECT strftime(‘%Y-%m-%d’, ’2004-10-31′, ‘+7 days’); 2004-11-07 sqlite> SELECT strftime(‘%H:%M’, ’22:00′, ‘+12 hours’); 10:00 sqlite> SELECT strftime(‘%Y-%m-%d %H:%M:%S’, ’2004-01-01 00:00:00′, ‘-1 second’, ‘+1 year’); 2004-12-31 23:59:59 相关文章: mysql编码 phpmyadmin里找不到gbk编码 远程连接mysql速度慢的解决办法 mysql物理备份恢复表丢失 关于leopard上safari的缓存

在PostgreSQL里添加与删除UNIQUE约束

删除UNIQUE约束,其实是删除index,官方文档说是可以用pg自带的扩展drop index作,不过我没试出来。最后发现可以这么做。 \d test表(查看表结构)                     Table “public.test”    Column    |          Type          |              Modifiers ————-+————————+————————————–  id          | integer                | not null  name        | character varying(32)  | not null Indexes:     “test_pkey” PRIMARY KEY, btree (id)     “test_name_key” UNIQUE, btree (name) 要删除name的UNIQUE约束,可以这么作: ALTER TABLE test DROP CONSTRAINT test_name_key 重新添加回这个约束: ALTER TABLE test ADD CONSTRAINT test_name_key UNIQUE(name) 相关文章: mysql编码 [...]

Page 1 of 212