考虑:
./mysqladmin -u root -p** '_redacted_'
输出(包括输入密码):
输入密码:
mysqladmin:连接到本地主机的服务器失败,错误信息为:
'Access denied for user 'root'@'localhost' (using password: YES)'
我该如何修复这个问题?
考虑:
./mysqladmin -u root -p** '_redacted_'
输出(包括输入密码):
输入密码:
mysqladmin:连接到本地主机的服务器失败,错误信息为:
'Access denied for user 'root'@'localhost' (using password: YES)'
我该如何修复这个问题?
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('root');
类似的答案,我的终端仍然显示以下错误:
您的SQL语法存在错误;请检查与您的MariaDB服务器版本相对应的手册,以获取正确的语法...
因此,在网上研究后,这行代码解决了我的问题,并让我更改了root用户密码:
sudo mysqladmin --user=root password "[your password]"
在Arch Linux上
软件包:mysql 8.0.29-1
对我有用的方法:
编辑my.cnf文件,通常可以在/etc/mysql/my.cnf
找到,并在文件底部/末尾添加skip-grant-tables
。
通过调用sudo systemctl restart mysqld
重新启动mysql服务。
通过调用sudo systemctl status mysqld
确保mysql服务已正确启动。
使用'root'登录mysql,通过调用mysql -u root -p
。
通过调用flush privileges;
刷新权限。
创建新用户,通过CREATE USER 'root'@'localhost' IDENTIFIED BY 'rootpassword';
。
(如果您计划使用此数据库与PHP),则应改为使用此CREATE USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'rootpassword';
。
按顺序调用以下内容以检查更改是否已反映在数据库中:
use mysql;
SELECT User, password_last_changed FROM user;
退出mysql控制台并通过编辑my.cnf文件(请参阅步骤1以获取位置)注释/删除skip-grant-tables
。
重新启动mysql服务(请参阅步骤2和步骤3)。
就是这样了。
特别是添加了以下行...
command: --default-authentication-plugin=mysql_native_password
...才解决了问题。
version: '3.3'
services:
mysql_db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'your_password'
ports:
- '3306:3306'
expose:
- '3306'
volumes:
- ~/your/volume/path:/var/lib/mysql
unix_socket
身份验证插件。mysql_native_password
身份验证方法,请在my.cnf
文件的[mysqld]
部分中添加以下行:[mysqld]
unix_socket=OFF
然后运行:
mysql_install_db --auth-root-authentication-method=normal
然后启动 mysqld
这个命令就可以正常工作了:
mysqladmin -u root password CHANGEME
如需更多信息,请参见配置mysql_install_db以恢复先前的身份验证方法。
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/budgetdb
spring.datasource.username=budget
spring.datasource.password=@@@password1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
'-p'参数不需要在参数名称和值之间加空格。
而应该使用
./mysqladmin -u root -p 'redacted'
使用
./mysqladmin -u root -p'redacted'
或只是
./mysqladmin -u root -p
这将提示您输入密码。
~/.my.cnf
文件。 - e-info128-p
选项,MySQL会提示您输入密码。 - Scotty C.