首页 新闻 会员 周边 捐助

linux脚本问题

0
[已解决问题] 解决于 2022-04-15 23:32

拜托帮忙密码这个报错信息如何解决?


报错信息

少年Dev的主页 少年Dev | 初学一级 | 园豆:146
提问于:2021-10-11 17:20
< >
分享
最佳答案
0

修改/etc/my.cnf配置文件
增加[mysqldump] 配置信息
脚本里面不需要指定用户名密码,

少年Dev | 初学一级 |园豆:146 | 2021-10-13 10:56
其他回答(4)
0

没权限啊兄dei

flyfishing | 园豆:943 (小虾三级) | 2021-10-11 17:26

root账户是最高权限啊

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-11 17:27

@少年Dev: 本机默认不用指定 host,去掉试下

支持(0) 反对(0) flyfishing | 园豆:943 (小虾三级) | 2021-10-11 17:41

@flyfishing:
去掉了还是报错

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-11 18:19
0

MySQL 权限, 你试试 “mysql -h localhost -uroot -p<你的密码> -e 'show databases;' ”

〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-11 17:29

百度 “MySQL grant ... ”

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-11 17:30

我直接DOS命令可以,但是在脚本里面就不行

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-11 17:38

@少年Dev: DOS一般不是代指 Windows 系统吗, 你这怎么看都是 Linux 呀

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-11 18:09

@韆: 写懵了,是Linux,直接命令行可以运行,写进脚本就不行,说权限问题

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-11 18:17


这个应该算是有权限的吧?

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-11 18:26

@少年Dev:

mysql -h localhost -uroot -p123456 -e 'show databases;'

这句在 Linux 命令行执行过没, 返回的啥;
你说直接输入命令可以, 也没说输的啥命令
图片里报错就是 MySQL 权限问题

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-12 08:58

@韆:

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 09:09

@韆: 这个命令

可以正常备份

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 09:23

@少年Dev: 我去启VM试试, 应该是shell脚本里写法问题, -u -p 后的空格

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-12 09:51

@少年Dev:

mysqldump -ucloudkitty -pcloudkitty --host=localhost cloudkitty > /root/test_self/test_sql/cloudkitty3.sql

我 shell 执行是可行的

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-12 09:59

@韆: 你的mysql是什么方式安装

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 10:01

@韆: 我看看你的my.cnf文件,你方便截个图吗?

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 10:02

@少年Dev:
我装的是 mariadb
安装方式如下(我主要是玩 openstack 弄的)
https://docs.openstack.org/install-guide/environment-sql-database-rdo.html

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-12 10:04

@少年Dev:
基本是原生的, 没改过啥特殊配置

[root@controller etc]# find /etc -name my.cnf
/etc/my.cnf
[root@controller etc]# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# This group is read by the server
#
[mysqld]
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

[root@controller etc]# cat /etc/my.cnf.d/openstack.cnf 
[mysqld]
#bind-address=192.168.75.128
bind-address=0.0.0.0
default-storage-engine=innodb
innodb_file_per_table=on
max_connections=4096
collation-server=utf8_general_ci
character-set-server=utf8

max_allowed_packet=500M
[root@controller etc]# 
支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-12 10:10

@韆: 我想可能是我的mysql装的有点问题吧,

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 10:11

@少年Dev: 不清楚, 我刚才看里前面也有去掉空格的执行记录; 搞不懂你为啥报错

建议你对shell脚本做减法, MySQL 命令换点简单的试试, 再试 mysqldump

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-12 10:14

@韆: 对啊,脚本是没问题的

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 10:15

我一行一行执行也是到mysql命令那里报错

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 10:22

@韆: netstat -lnp | grep -i MySQL
看看你的端口绑定情况

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 11:19

@少年Dev:

[root@controller ~]# netstat -lnp | grep -i MySQL 
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1436/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     31082    1436/mysqld          /var/lib/mysql/mysql.sock
[root@controller ~]# 
支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-13 09:09

@韆: 我的是tcp6,奇怪的很
。。。
不过问题已经解决了,修改了mysql的配置文件
centos版本问题,shell脚本不能指定用户名跟密码,可能开发人员认为那样不安全。

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-13 11:59
0

修改root用户的密码之后,再试试

人间春风意 | 园豆:2780 (老鸟四级) | 2021-10-12 08:29

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxx';

支持(0) 反对(0) 人间春风意 | 园豆:2780 (老鸟四级) | 2021-10-12 08:31

@人间春风意: root密码之前已经修改过了呢

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 08:50
0

执行该sql 看看 : select host, user from mysql.user;结果粘贴出来;

试试将 localhost 替换成 127.0.0.1

地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 09:12

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 09:30

@少年Dev: 没有 host =localhost的root 用户 ,所以报错 , 试试将 localhost 替换成 127.0.0.1或者内网ip

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 09:32

@地菜: host要指定吗,本机执行不是不需要指定么?

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 09:41

@少年Dev: 不需要指定 建立在你有localhost的root ,但是你没有 ,可以添加一个 或者把localhost.localdomain 改成localhost

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 09:44

@地菜:

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 09:44

@地菜:
修改哪个就报哪个错误。。。。

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 09:47

@少年Dev: 你还是改一个localhost用户吧 , 估计3306端口只绑定到localhost了
执行 netstat -lnp | grep MySQL 看结果

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 09:53

@地菜:

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 09:59

@少年Dev:
cat /etc/mysql/my.cnf |grep bind
cat /etc/mysql/mysql.conf.d/mysqld.cnf |grep bind

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 10:14

@少年Dev: 3306 咋绑定到 ipv6 上了

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 10:16

can't connect to mysql server on 127.0.0.1 (111) 搜索这个 找找

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 10:16

@地菜:

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 10:19

@地菜: 应该是mysql安装有问题,我重新安装一下试试吧

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 10:21

@少年Dev: 数据备份下, 重装吧

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-10-12 10:25

@韆:
重装还是报一样的错,汗。。。

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-12 11:17

@少年Dev: -P -> -p 小写的p 指定密码

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-12 13:55

@地菜: 解决了,
命令没问题,执行方式有问题

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-13 09:54

@少年Dev: 啥方式

支持(0) 反对(0) 地菜 | 园豆:208 (菜鸟二级) | 2021-10-13 11:50

@地菜: shell脚本不能执行user跟密码,可能开发人员认为那样不安全。必须在配置文件里面声明。

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-13 22:47

@地菜感觉应该是centos版本问题吧,centos6好像又可以

支持(0) 反对(0) 少年Dev | 园豆:146 (初学一级) | 2021-10-13 22:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册