Azure MySQL灵活服务器:CLI连接失败及创建用户语法错误求助
问题:Azure MySQL灵活服务器CLI连接及用户创建故障排查
背景
- 数据湖仓项目需定期将数据转储导入Azure MySQL灵活服务器
- Databricks环境通过Spark JDBC使用
myproject_admin账号可正常连接数据库,但CLI端无论是用MySQL原生认证还是AAD认证均无法登录 - 服务器仅允许虚拟网络内访问,客户端机器处于该网络中;已配置同时支持MySQL原生认证与AAD认证
已尝试操作及错误详情
1. 服务主体+AAD认证登录CLI
执行命令:
%sh az login --service-principal -u $AUTHID -p $AUTHPASSWORD --tenant $AZTENANT mysql -h project-name-mysql-server.mysql.database.azure.com --user mysqlConnectorServicePrincipal@tenant.onmicrosoft.com@project-name --enable-cleartext-plugin --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken` -
返回错误:
ERROR 1045 (28000): Access denied for user 'mysqlConnectorServicePrincipal@tenant.onmicrosoft.com@pipeline'@'10.0.00.0' (using password: YES)
2. MySQL原生认证登录CLI
执行命令:
%sh mysql -h project-name-mysql-server.mysql.database.azure.com -u myproject_admin -pTheactualpasswordincode
返回错误:
ERROR 1045 (28000): Access denied for user 'myproject_admin'@'10.0.00.0' (using password: YES)
3. 通过JDBC创建新用户
执行Python代码:
%py query: str = f"CREATE USER 'datadumpuploader'@'10.0.00.0' IDENTIFIED BY 'atestpassword';" run_jdbc_query(source=source, query=query)
返回错误:
java.sql.SQLSyntaxErrorException: (conn=88) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE USER 'datadumpuploader'@'10.0.00.0' IDENTIFIED BY 'atestpassword';) SPARK_GEN_' at line 1
补充信息
- 服务器版本:MySQL 8.0
- 通过JDBC查询
mysql.user表确认myproject_admin用户存在 - 需求:找到CLI正常连接服务器的解决方案,优先无需通过JDBC解析数据转储的方案
内容的提问来源于stack exchange,提问作者scvbelle
相关产品推荐
相关产品推荐

