我通常正确设置MySQL以进行远程访问。
目前我遇到了MySQL 8。
第一件事就是在mysql.conf.d / mysqld.cnf上,我没有任何绑定地址行,所以我手工添加它(bind-address 0.0.0.0) 我在'%'
上授予用户访问权限当我连接时,我收到消息“身份验证失败”
但它在localhost /命令行上运行良好
答案 0 :(得分:6)
MySQL 8 中的远程访问:
1) 允许来自任何主机的访问
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
2) 允许用户从任何地方访问:
mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
UPDATE mysql.user SET host='%' WHERE user='root';
3) 将身份验证更改为密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'ThePassword';
答案 1 :(得分:1)
制作方法
bind_address
文件中删除或注释my.ini
参数。创建root
用户(是的,是新用户,因为存在的是“ root @ localhost”(仅本地访问))
CREATE USER 'root'@'%' IDENTIFIED BY '123';
授予特权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
对于 DBA 用户,请在末尾添加
WITH GRANT OPTION
。
MySQL 8不再能够使用GRANT
创建用户,因此如果尝试将IDENTIFIED BY '123'
与GRANT
一起使用,则会出现module.exports = {
entry: "./src/index.ts",
output: {
filename: "demo.js",
library: "Demo",
libraryTarget: "umd",
libraryExport: "default"
},
devtool: "inline-source-map",
plugins: [
new CleanWebpackPlugin(),
new SourceMapDevToolPlugin({
exclude: /node_modules/
})
],
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx"],
alias: {
"@Src": path.resolve(__dirname, "src")
}
},
module: {
rules: [
{
test: /\.(ts|tsx)?$/,
loader: "awesome-typescript-loader"
},
{
test: /\.less$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader",
options: {
modules: true
}
},
{
loader: "less-loader"
}
]
},
{
test: /\.(png|svg|jpg|gif)$/,
use: ["file-loader"]
}
]
},
externals: {
react: "React"
}
};
中的错误,这是最常见的错误。 / p>
答案 2 :(得分:1)
遇到相同的问题,已连接到MySQL Workbench并更新了用户权限。
MySQL版本:8.0.20社区。 操作系统:Windows 10。
答案 3 :(得分:0)
对于MySQL 8,打开mysqld.cnf文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
并修改或添加绑定地址选项:
[mysqld]
bind-address = 0.0.0.0
重新启动 mysql 服务器
sudo service mysql restart