今天在mac环境下使用Mysql,遇到了一些问题:
1、Can't connect to local MySQL server through socket '/tmp/mysql.sock'
输入mysql时遇到上面提示,原因是mysql服务没有启动,启动mysql服务即可。
命令行:service mysqld start
在mac中,打开系统偏好设置,最后一行有mysql操作。
2、ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'bither_api'
输入mysql登录之后,(即以bitbank@localhost登录),试图创建数据库create database bither_api;
提示错误如上:
原因是缺少权限
使用mysql -u root登录之后
GRANT ALL ON *.* TO 'bitbank'@'localhost'
问题解决。
该问题,网上查询,一般是说匿名用户没有权限,把匿名用户禁掉即可。因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来。
方法一:
1.关闭mysql
# service mysqld stop
2.屏蔽权限
# mysqld_safe --skip-grant-table
屏幕出现: Starting demo from .....
3.新开起一个终端输入
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
mysql> \q
方法二:
1.关闭mysql
# service mysqld stop
2.屏蔽权限
# mysqld_safe --skip-grant-table
屏幕出现: Starting demo from .....
3.新开起一个终端输入
# mysql -u root mysql
mysql> delete from user where USER='';
mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
mysql> \q
# service mysqld restart
3.Library not loaded: libmysqlclient.18.dylib (LoadError)
Library Not Loaded issue for mysql client on Mac OS
在程序中调用mysql时出现上述提示:解决方案如下:
Put export DLYD_LIBRARY_PATH=/usr/local/mysql/lib into bash profile, somehow, it will raise warning time to time in Lion and ML: 'dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/osascript) is code signed with entitlements', things like that.
Run sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib, this works for me. 4.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection time
解决方案
session.close()