mysql相关问题

    xiaoxiao2021-12-14  20

    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

    转载请注明原文地址: https://ju.6miu.com/read-970551.html

    最新回复(0)