当前位置:嗨网首页>书籍在线阅读

14-高手点拨

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.7 高手点拨

本节视频教学录像:8分钟

1.MySQL Administrator还原数据库注意事项

MySQL Administrator中还原数据库时需注意以下两点。

⑴“Target Schema”选项中,如果没有MySQL服务器root权限,比如只是虚拟主机分配的一个子账户,此时必须选择“Another schema”里的数据库名,而不能选择“Original schema”选项,否则会还原失败出错。

⑵“FILE CHARSET”选项默认为“UTF- 8”,请不要更改,否则会出现中文乱码问题。

2.重新设置一个忘记的口令

如果忘记了MySQL的root用户的口令,可以用下列过程恢复。

⑴通过发送一个kill(不是kill -9)到MySQL服务器来关闭MySQL服务器。pid被保存在一个.pid文件中,通常在MySQL数据库目录中。

kill'cat /mysql-data-directory/hostname.pid'

⑵使用--skip-grant-tables选项重启MySQL。

⑶用mysql -h hostname mysql连接MySQL服务器并且用一条GRANT命令改变口令,也可以运行mysqladmin -h hostname -u user password 'new password'。

⑷用mysqladmin -h hostname flush-privileges或用SQL命令FLUSH PRIVILEGES来装载权限表。

3.utf8_bin跟utf8_general_ci的区别

utf8_general_ci是 case insensitive,即“大小写不敏感”,a 和 A 会在字符判断中会被当作一样的。

utf8_bin 是二进制,a 和 A 会别区别对待。例如运行如下语句。

SELECT * FROM table WHERE txt ='a'

那么在utf8_bin中就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以。

4.解决unknown option'--skip-federated'错误

如果MySQL安装或者启动时,出现 unknown option '--skip-federated'错误,则可以通过两种方法解决。

⑴打开目录vi /etc/my.cnf,将里面的#skip-federated行注释掉。

⑵编译的时候加上参数“--with-plugins=all”。

5.The table is full错误

这个错误发生在内存临时表变得比tmp_table_size字节大时。为了避免这个问题,可以使用MySQL的-O tmp_table_size=#选项来增加临时表的大小,或在发出有疑问的查询之前使用SQL选项SQL_BIG_TABLES。

6.从关联的表中删除行

因为MySQL不支持子选择或在DELETE语句中使用多个表,故应该使用下列方法从2个关联的表中删除行。

⑴在主表中基于某个WHERE条件SELECT行。

⑵在主表中基于相同的条件DELETE行。

⑶执行DELETE FROM related_table WHERE related_column IN (selected_rows)。

如果在related_column查询中的字符的全部数量超过1048576(缺省值max_allowed_packet),则应该分成更小的部分并且执行多个DELETE语句。如果related_column是一个索引,则每次只删除100~1000个related_column id将可能使得DELETE最快。如果related_column不是一个索引,速度与IN子句中参数的数量无关。

7.phpMyAdmin安装使用注意事项

⑴安装环境:使用phpMyAdmin,需要Apache、MySQL、PHP,可以独立安装这几个软件,然后进行配置。为了简单方便起见,也可以采用Xampp(Xampp本身就是X操作系统+Apache+MySQL+PHP +phpMyAdmin的缩写,如Windows的则叫WAMPP)这个集成软件包来搭建。具体的安装过程这里不再详述,但是需要注意PHP的5.5版本不支持在Windows XP和Windows 2003系统中安装。

⑵配置问题:配置Xampp下的Apache和MySQL,如果默认端口被占用则可以通过修改Apache和MySQL的端口来解决。如果访问地址http://localhost/phpmyadmin无法使用,则需要在localhost后加上端口号,如http://localhost:(Apache的端口号)/phpmyadmin。