Mac上Mysql日常

前言

最近一直在项目中遇到编码问题,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上有此问题吧–笑楔信

    原文作者:mysql
    原文地址: https://www.jianshu.com/p/4505cdaf977d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞