暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

解决linux mysql命令 bash: mysql: command not found 的方法

一个老兵 2024-05-13
4277

root@DB-02 ~]# mysql -u root -bash: mysql: command not found

原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。 首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

# ln -s /usr/local/mysql/bin/mysql /usr/bin
复制

以下是补充:

linux下,在mysql正常运行的情况下,输入mysql提示: mysql command not found

遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:

把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下:

# cd /usr/local/bin
# ln -fs /MYSQLPATH/bin/mysql mysql

例如:
ln -fs /data/mysql/bin/mysql /usr/bin/
ln -fs /data/mysql/bin/mysql mysql
复制

还有其它常用命令mysqladmin、mysqldump等不可用时候都可按用此方法解决。 注:其中MYSQLPATH是mysql的实际安装路径

常用语句

1、连接服务器:
mysql -u root -p
2、看当前所有数据库:
show databases;
3、进入mysql数据库:
use mysql;
4、查看mysql数据库中所有的表:
show tables;
5、查看user表中的数据:
select Host, User,Password from user;
6、修改user表中的Host:
update user set host=‘%’ where host=‘localhost’ and User=‘root’;
7、最后刷新一下:
flush privileges;
update user set host=‘%’ where user=‘root’;

linux 上mysql8 忘记密码
配置文件my.conf中加上一行命令
打开mysqL的配置文件my.conf
vim /etc/my.conf
增加以下命令(记得修改完之后要把这个命令注释掉)
skip-grant-tables
重启mysql服务(重启完之后,就可以免密码登录数据库了)
service mysql restart

以下为HK生产的实际解决过程
vi /etc/my.cnf
systemctl restart mysql.service
将密码先置空
mysql -u root -p
use mysql;
update user set authentication_string=‘’ where user=‘root’;
exit
修改数据库密码
mysql -u root -p
use mysql;
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘密码(不要太简单)’;
ALTER USER USER() IDENTIFIED BY ‘wingkin45’;#wingkin为密码
FLUSH PRIVILEGES;

2059错误
问题原因:
由于在MySql8之前的版本,默认的加密规则是mysql_native_password,而在MySql8后的版本,默认的加密规则已经调整为caching_sha2_password,由于Navicat不支持最新的caching_sha2_password加密规则,导致连接出错。

1.登录数据库
mysql -uroot -p
2.使用数据库
use mysql;
3.修改加密规则,其中123456为修改后的密码
ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘gaoke#321’ PASSWORD EXPIRE NEVER;
4.修改密码
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘gaoke#321’;
5.刷新权限
FLUSH PRIVILEGES;

1045错误
若要想root用户可以远程登录mysql,则还需要以下命令:

mysql> update user set host = ‘%’ where user = ‘root’;

我们也可以直接给用户权限
grant all on . to 用户名@“%” identified by “密码”;
flush privileges;刷新权限
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论