SQL无法启动-TDSSNIClient 初始化失败,出现错误 0x277a,状态代码 0xa

打开事件查看器:



错误详细信息:









出现此问题为TCP/IP端口被占用。

解决方法:

1.修改端口

2.禁用TCP/IP协议


### 解决 OpenStack Keystone 连接失败问题 在 CentOS 7 中部署 OpenStack 的过程中,如果遇到 `Keystone` 服务无法访问 `http://controller:5000/v3/auth/tokens` 端点的问题,并提示错误信息 `(pymysql.err.OperationalError) (2003, “Can’t connect to MySQL server on ‘controller’ ([Errno 111] Connection refused))` 或者类似的网络连接超时错误,则可能是由于以下几个原因引起的。 #### 可能的原因分析 1. **MySQL 数据库未启动或配置不正确** 如果数据库服务器未正常运行或者监听地址设置不当,可能会导致 Keystone 无法成功连接到数据库。这通常表现为 `[Errno 111] Connection refused` 错误[^1]。 2. **防火墙阻止了必要的端口通信** 默认情况下,CentOS 7 启用了 `firewalld` 防火墙服务。如果没有开放相应的端口(如 MySQL 的默认端口 3306 和 Keystone 使用的 5000),则可能导致外部请求被拒绝。 3. **Keystone 配置文件中的 URL 设置有误** 在 `/etc/keystone/keystone.conf` 文件中,可能需要确认 `connection` 参数指向的是正确的 MySQL 地址和端口号。例如: ```ini connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone ``` 4. **网络连通性问题** 控制节点之间的网络连通性不佳也可能引发此问题。可以通过执行以下命令测试控制器主机上的 MySQL 是否可访问: ```bash telnet controller 3306 ping controller ``` 若上述命令返回异常,则说明存在网络层面的问题。 5. **Bootstrap 初始化过程存在问题** 对于 Queens 版本及其之后的版本,在初始化身份认证服务时需调用 `keystone-manage bootstrap` 命令完成基础数据填充工作。若该操作未能顺利完成,后续尝试获取 token 将始终失败[^3]。 #### 推荐解决方案 以下是针对以上提到的各种可能性所提供的修复措施: ##### 步骤一:验证并重启 MariaDB/MySQL 服务状态 确保数据库引擎已开启并且能够接受远程连接请求。可以按照如下方法排查: - 查看服务当前状况: ```bash systemctl status mariadb.service ``` - 如发现处于停止状态,请立即启用它: ```bash systemctl start mariadb.service systemctl enable mariadb.service ``` - 修改绑定 IP 地址允许来自其他机器的数据交换,默认仅限本地回环接口(`localhost`)可用。编辑 `/etc/my.cnf.d/mariadb-server.cnf` 添加下面一行内容至 `[mysqld]` 节下: ```ini bind-address=0.0.0.0 ``` - 刷新权限表重新加载更改后的设定项: ```sql FLUSH PRIVILEGES; ``` ##### 步骤二:调整 SELinux 安全策略以及禁用 firewalld SELinux 是 Linux 下的一种强制访问控制机制,有时会对某些特定应用施加额外约束条件从而干扰其正常使用体验;与此同时还需要留意是否有活跃状态下的防火墙阻挡流量传输路径的情况发生。 关闭临时模式直到永久生效为止: ```bash setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config ``` 停用现有 firewall 并安装 iptables 替代方案以便更灵活地管理规则集: ```bash systemctl stop firewalld && systemctl disable firewalld yum install -y iptables-services systemctl start iptables && systemctl enable iptables iptables-save | grep -v ":REJECT" > /etc/sysconfig/iptables service iptables restart ``` ##### 步骤三:校正 keystone.conf 关键参数定义 打开位于 `/etc/keystone/keystone.conf` 的主配置文档定位至 database 组件部分仔细核验每一处细节是否匹配实际环境需求。比如这里给出的一个典型例子供参考对照之用: ```ini [database] ... connection=mysql+pymysql://keystone:<password>@<hostname>/keystone?charset=utf8mb4&binary_prefix=true ... ``` 最后别忘了同步更新 admin_token 字段值来保障调试阶段的安全交互流程顺利开展下去: ```ini [token] provider=fernet expiration=3600 secure=True cache_on_issue=False driver=pki format=UUID hash_algorithm=sha256 auth_methods=['external', 'token', 'password'] default_role_id=<role id> bind_mapping_enabled=False revocation_cache_size=10000 max_payload_bytes=10240 audit_map_file=/etc/keystone/audit/map.yaml ``` ##### 步骤四:重试 keystone-manage bootstrap 执行动作 一旦前面几步都妥善处理完毕以后就可以再次发起创建初始记录集合的动作了。记得替换掉占位符 `<ADMIN_PASS>` 成真实密码字符串形式表达出来即可满足基本功能实现目标要求。 ```bash keystone-manage bootstrap \ --bootstrap-password <ADMIN_PASS> \ --bootstrap-admin-url http://<CONTROLLER_HOSTNAME>:5000/v3/ \ --bootstrap-internal-url http://<CONTROLLER_HOSTNAME>:5000/v3/ \ --bootstrap-public-url http://<CONTROLLER_HOSTNAME>:5000/v3/ \ --bootstrap-region-id RegionOne ``` --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值