前言
最近一直在项目中遇到编码问题,mysql上是中文,到了页面就成乱码,反之,页面是中文,mysql上的乱码,mac上就这样,改了tomcat的编码也没啥用,写此文章调理思路。
添加mysql别名
alias mysql='/usr/local/mysql/bin/mysql'
alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
mysql无法停止
磁盘工具->急救->验证磁盘权限->修复磁盘权限
有cleanMyMac,维护->修复磁盘权限->运行
mysql启动与停止命令
启动:sudo /usr/local/mysql/support-files/mysql.server start
停止:sudo /usr/local/mysql/support-files/mysql.server stop
重启:sudo /usr/local/mysql/support-files/mysql.server restart
mysql卸载 摘自:http://blog.csdn.net/maxsky/article/details/40347505s
sudo rm -rf /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo nano /etc/hostconfig (复制前面部分回车,然后删掉这一行: MYSQLCOM=-YES-,control+O回车保存,control+X退出编辑界面)
sudo rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
重设root密码
1. 停止 mysql server. 通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server'
2. 打开终端,输入:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
3. 打开另一个新终端,输入:
sudo /usr/local/mysql/bin/mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('root') WHERE User='root';
FLUSH PRIVILEGES;
\q
4. 重启MySQL.
密码过期
1.先关闭MySQL服务;
2.进入终端,输入指令:cd /usr/local/mysql/bin/,进入安装目录;
3.输入指令:sudo su,切换到root用户;
4.输入指令:./mysqld_safe --skip-grant-tables &,禁止mysql验证功能。此时mysql服务会自动重启了;
5. 用工具(比如Sequal Pro)登录mySQL。配置的时候,只配用户名为root,密码不配。
6. 登录进去以后,数据库选择mysql,修改user表下用户名为root的那条记录,将password_expired设为N。这样随机密码就有效了,可以用密码登录了。
摘自http://blog.csdn.net/jxplus/article/details/49796711,20161221日实测有效
mysql 进入mysql命令行
mysql -h localhost -u root -p
查看mysql编码
mysql> show variables like '%char%';
mysql设置中文字符集
取得/usr/local/mysql/support-files/下的my-default.cnf,移动到/etc(起作用的目录),改为my.cnf(起作用的名字),添加如下内容(起作用的内容):
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
遇到的坑
1、没有停止mysql服务即修改my.cnf~~出现再启动后的mysql无法关闭的问题
2、在/usr/local/mysql/support-files/下修改my.cnf文件的问题~~应该放到/etc下my.cnf才起作用
3、mysql默认字符集已经都utf-8了,navicat上的中文还是乱码,也可能navicate上不乱码,浏览器上中文乱码。---巨坑,navicat上新建连接的时候,弹出的配置中编码Encoding不要选utf-8,一定保持默认的auto,设了utf-8的话即使你的表是utf-8的也可能显示乱码。而你在选了utf-8的数据库中新建的表会显示中文,但设置了utf-8的tomcat、jsp等浏览器上也可能显示乱码。如果大家有空,帮我看看那个Encoding选项有什么含义没有~这个好像就是mac上有此问题吧--笑楔信