Redirecting to /bin/systemctl start mysqld.service

25 篇文章 5 订阅
17 篇文章 7 订阅

今天本地安装hive时需要进入sql即#mysql -uroot -p遇到很多问题解决方法如下

1.解决MySQL ERROR 1130 (HY000): Host XXXX is not allowed to connect to this MySQL server

问题现象:使用mysql远程登录命令mysql –uroot –p时,报错MySQL ERROR 1130 (HY000): Host 'XXXX' is not allowed to connect to this MySQL server

问题原因:mysql服务器出于安全考虑,默认只允许本地登录数据库服务器。

问题解决:登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%",然后重启mysql这样就允许所有的远程机器进行访问了。
步骤1:修改mysql表

mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>flush privileges;
mysql>select host, user from user;

mysql>quit

步骤2:重启mysql

方法1:在windows设置中找到“查看本地服务”,找到mysql服务,重启mysql服务
这个方法需要本地登录数据库,很不方便

2.mysql_install_db is deprecated. Please consider switching to mysqld --initialize
解决:需要使用mysqld来初始化

./mysqld --initialize --datadir=/usr/local/mysql-cluster/data --user=mysql --basedir=/usr/local/mysql-cluster

在安装mysql时遇到以下错误

执行./mysqld --initialize 后

./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

原因是没有安装libaio.so.1,安装即可。

Ubuntu下执行:

    apt-get install libaio1 libaio-dev

Redhat/Fedora/CentOS下执行:

    yum install libaio
这个方法还是出现错误

3.首先是启动MySQL服务的时候:

/etc/init.d/mysql start  

遇到问题如下:
bash: /etc/init.d/mysql start: No such file or directory
然后在网上google了一堆解决方法,挨个测试,但是都没有解决。其中还遇到问题如下:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) 

解决方法:运行下面的命令: 
mysql_install_db 
chown -R mysql.mysql /var/lib/mysql 
以后就这样启动mysqld服务了: mysql -u root -p
mysql依然启动失败

4.ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

mac上用homebrew安装mysql步骤:

1)brew install mysql(默认安装mysql8)

安装完成后:启动mysql服务

2)bash mysql.server start

这个时候用navicat 连接会报错2059 Authentication plugin 'caching_sha2_password' cannot be loaded

这是因为新版mysql数据库的加密方式变了:

3)录数据库 mysql -u root -p

mysql> use mysql;

4)通过命令 select user,plugin from user where user='root'; 我们可以发现加密方式是caching_sha2_password

5)mysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| admin            | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| zhangj           | localhost |
+------------------+-----------+
注意我的root,host是'%' 

6)然后使用命令:alter user 'root'@'%' identified with mysql_native_password by 'your password';

执行这个语句时如果报错“ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'”,就执行第6步,如果没报错就走第7步

7)保留当前窗口,新打开一个窗口,重新进入mysql,执行该命令就可以了

再次查看,就发现加密方式已经更改:

8)接着找到my.cnf文件(不知道目录的可以通过brew list mysql来确定目录)并加上加密方式:

default_authentication_plugin=mysql_native_password

9)保存后,重启mysql服务命令:mysql.server restart
这个方法可以使用

5.MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list'
新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user  set password=password('root') where user='root'时提示ERROR 1054 (42S22): Unknown column 'password' in 'field list',原来是mysql数据库下已经没有password这个字段了,password字段改成了
authentication_string
 所以更改语句替换为update mysql.user set authentication_string=password('root') where user='root' ;完整的更改MySQL密码的方式如下:

 1)vim /etc/my.cnf 加入skip-grant-tables

 2)重启MySQL, /etc/init.d/mysqld restart 

 3)终端输入 mysql 直接登录MySQL数据库,然后use mysql

 4)update mysql.user set authentication_string=password('root') where user='root' ;

 mysql5.7更改密码应该采用命令  ALTER USER 'root'@'localhost'IDENTIFIED BY '********'其中密码的命名规则有所改变,详见

 http://blog.csdn.net/u010603691/article/details/50541979

 5)编辑my.cnf文件删掉skip-grant-tables 这一行,然后重启MySQL,/etc/init.d/mysqld restart,否则MySQL仍能免密码登录

 6)mysql -u root -p然后输入密码即可登录MySQL数据库

这个方法还是启动不了

6、解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在登录mysql输入密码后出现如下问题:

一般是密码错误引起,解决的办法是重置密码

重置密码的第一步就是跳过MySQL的密码认证过程

查找my.cnf文件的位置

find -name my.cnf

我的文件位置是 ./etc/my.cnf

打开my.cnf文件

vim /etc/my.cnf

找到[mysqld],在它的后面任意下一行添加如下代码

skip-grant-tables

保存退出

:wq

然后重启mysql,命令如下:

/etc/init.d/mysqld restart  (我找不见这个文件目录

输入mysql

用sql来修改root的密码 

在mysql数据库有一个user表,存储的是数据库用户的信息,我们需要修改的里面用户的密码;

show databases;

命令依次为:

#use mysql;(使用mysql数据库)

#update user set password=password("你的密码") where user="root";

#flush privileges;

#quit

root账户就已经重置成新的密码了

编辑my.cnf,去掉刚才添加的内容,然后重启MySQL

7.在启动mysql时,执行service mysqld start报错,不能进入Mysql
在这里插入图片描述
执行systemctl restart mysqld.service

在这里插入图片描述
成功进入!(很多方法就这个成功了)然后执行第六个问题修改密码部分就可以,然后退出mysql使用#mysql -uroot -p  (输入修改密码) 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值