mysql相关问题

1、Can't connect to local MySQL server through socket '/usr/local/bin/mysql/mysql.sock' (2)

这个错误就是没启动mysql,先启动一下service mysql start


2、Starting MySQL.The server quit without updating PID file (/[FAILED]l/bin/mysql/data/iZ25c2jndiiZ.pid)

可能的原因如下

①权限问题

sudo chown -RL root:mysql /usr/local/bin/mysql
sudo chown -RL mysql:mysql /usr/local/bin/mysql/data
chmod -R 755 /usr/local/bin/mysql/data

②去掉/etc/my.cnf中[mysqld]下面的其他的设置,包括Innodb,只留下datadir的设置和skip-grant-tables(如果需要无密码登录的话),然后重启mysql就ok了,这种方式破坏了innodb的使用,不是很好。

(参考https://icesquare.com/wordpress/mysql-starting-mysql-error-the-server-quit-without-updating-pid-file/,不过该参考都没解决问题,但值得一看)

③另一个解决方案:/etc/my.cnf,配置错误日志(我的问题在配置这个参数后就自动好了),查看并分析日志中报的错误。

[mysqld_safe]
log-error = /usr/local/bin/mysql/logs/error.log

(别忘了给logs权限)

④还有可能是内存不够了,如果机器内存不大,要注意innodb_buffer_pool_size改小一点(默认128M)。

http://732233048.blog.51cto.com/9323668/1636409


3、Access denied for user 'root'@'localhost' (using password: NO)

多次遇到,原意是说权限错误,但是这是在本机啊localhost,这都错!我的办法每次都是改密码。

既然进不去,那么就要跳过授权认证直接进入mysql:

vi /etc/my.conf
在[mysqld]下添加skip-grant-tables

然后采用无密码方式进入:

mysql -u root

修改root密码:

update mysql.user set password=PASSWORD('这里填入密码') where user='root';
flush privileges;
退出mysql,重启service mysql restart。

修改my.conf,去掉skip-grant-tables。

使用密码登录:

mysql -u root -p,大功告成。


4、添加新用户

mysql>CREATE USER 'username'@'%' IDENTIFIED BY 'password';

%是指任何主机都可连接数据库并登录。


5、新用户授权

只有授权后才能访问具体的数据库:

mysql>grant all privileges on *.* to 'username'@'%';

简单暴力,直接给予所有权限。

最后flush privileges,刷新权限表。

6、授权时没有权限:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

原因是root用户的权限被关闭了,导致关闭的原因目前还不清楚,解决办法是:

到user表中更改权限值:N->Y

mysql>select host,user,grant_priv from user;

可以看到root的localhost权限值为N,将其改为Y即可:

mysql>update user set grant_priv="Y" where user="root";

mysql>flush privileges;

然后退出mysql再重新登录mysql,然后就可以root下使用grants进行授权了。

7、查看库中信息

  • 查看所有数据库mysql>show database;
  • 切换到数据库mysql>use '数据库名';
  • 查看切换后数据库下的所有表mysql>show tables;
  • 查看具体表(user为例)中的指定信息mysql>select host,user,password from user;
  • 查看所有授权信息mysql>show grants;
  • 查看指定用户的授权信息mysql>show grants for 'username'@'%';
整理知识点是个好习惯,之前没整理,这些问题是第三次遇到,每次遇到都是隔了好久,以至于重新查好多资料才解决,大大的浪费时间。

其他细节参考链接:

http://blog.csdn.net/andy_yf/article/details/7487519

http://www.cnblogs.com/wanghetao/p/3806888.html







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装MySQL时报错 "ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'" 这个错误通常是由于MySQL服务器未正常启动引起的。你可以尝试以下解决方法: - 检查是否已经安装了MySQL服务器,并且确保它已经启动。可以使用命令`sudo service mysql status`来检查MySQL的运行状态。 - 如果MySQL未启动,可以使用命令`sudo service mysql start`来启动它。 - 如果MySQL仍然无法启动,可以尝试重新安装MySQL。首先卸载MySQL,然后再重新安装。可以使用命令`sudo apt-get purge mysql-server`来卸载MySQL,然后再使用适合你的Linux发行版的软件包管理工具来重新安装。 2. 安装MySQL时报错 "ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)" 这个错误通常是由于在安装过程中输入的MySQL管理员账户密码不正确引起的。你可以尝试以下解决方法: 确认你输入的MySQL管理员账户密码是正确的。 - 如果忘记了密码,可以尝试使用以下步骤重置MySQL管理员账户密码: 1) 停止MySQL服务:`sudo service mysql stop` 2) 以跳过权限验证的方式启动MySQL:`sudo mysqld_safe --skip-grant-tables &` 3) 连接到MySQL服务器:`mysql -u root` 4) 使用以下命令修改管理员密码:`UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';` 5) 刷新权限表:`FLUSH PRIVILEGES;` 6) 退出MySQL:`quit` 7) 重新启动MySQL服务:`sudo service mysql start` 如果以上方法仍然无法解决问题,建议查看官方文档或MySQL相关论坛上的其他解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值