Database
四 25th, 2011
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 [...]
mysql
Database
一 10th, 2011
装了新版的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
Database
六 10th, 2010
在数据库服务器上修改配置文件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
Database
三 1st, 2010
所谓物理备份,即直接拷贝相关的文件而不是通过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的错误
mysql
Database
四 17th, 2009
症状:在新编译的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
Database
四 15th, 2009
使用内部函数instr,可代替传统的like方式查询,并且速度更快。 instr函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 例如, select name from tpl_user where 1 and instr(`name`,’jack’); 可查询名字中带jack的名字。 相关文章: mysql编码 phpmyadmin里找不到gbk编码 远程连接mysql速度慢的解决办法 mysql物理备份恢复表丢失 关于leopard上safari的缓存
mysql