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。