一,乱码问题
在sercurecrt的命令行操作数据库,select出来的中文数据都是乱码,sercurecrt的视图编码和系统用户的编码是一样的,都是utf8,所以用sercurecrt查看中文内容应该是不会乱码的。上网搜索,发现mysql5提供了以下几个个设置字符集的系统变量:
mysql> show variables like 'character_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
其中
1,character_set_client :客户端编码
2,character_set_connection:客户端与数据库连接编码
3, character_set_database :数据库编码
4,character_set_results :查询返回时使用的编码
问题出在character_set_results 是latin1。
解决办法:
sercurectr设置为默认编码(gbk)
查询前执行
mysql> set character_set_results=gbk;
---------------------------------
使用上述变量,要理解这个核心思想: character_set_client,character_set_connection这两个变量保证要与 character_set_database编码的一致,而 character_set_results则保证与SELECT返回的结果与程序的编码一致。我们可以在程序中使用 set names来同时设置character_set_client, character_set_connection, character_set_results这三个系统变量。
二,查看mysql进程
1,ps auxww|grep mysqld | grep -v grep
2,监听端口
netstat -anp | grep 3306
3,查看是否存在文件/tmp/mysql.sock
4,mysql客户端访问:/usr/local/mysql/bin/mysql
5,关闭mysql
a,正常关闭:/usr/local/mysql/bin/mysqladmin shutdown ,如果设置了密码,在加一个选项-p
b,强制关闭:killall -9 mysqld_safe:
killall -9 mysqld
6,发邮件
mail -s "mysql backup is success!" [email protected] < /data/databk/backuplog
7. 重置密码
mysqld --skip-grant-tables