phpmyadmin 尝试连接到 mysql 服务器被拒绝

本文详细介绍了如何修改phpMyAdmin的config.sample.inc.php文件来设置不同的认证方式,包括config、cookies、http(HTTP)和signon,以及如何更改数据库密码。

打开phpMyAdmin文件夹下的config.sample.inc.php文件找到这一句

$cfg['Servers'][$i]['auth_type'] = 'config';

这里可以设置成http(HTTP)、config、cookies、signon。

config:这个是简单的方式,密码直接写入config.inc.php文件中,登录时直接读取这个文件。

cookies:这个是正常版本的登录方式,就是基本的填写用户名和密码,存储在cookies里面等你退出后也就去除了。

http(HTTP):这个是http认证模式,当你登录这个网页时,浏览器会弹出一个对话框提示你输入用户名和密码。

signon:这个模式可以提供你自己写一个php脚本,登录的时候读取这个脚本。例如”signon/example.php”。

如果设置成'config',则找到以下这句

$cfg['Servers'][$i]['password'] = '';

改成

$cfg['Servers'][$i]['password'] = '你的数据库密码';


转载于:https://my.oschina.net/lee2013/blog/498347

<think>我们正在解决phpMyAdmin连接MySQL服务器失败的问题,用户提示"使用配置文件中定义的控制用户连接失败"。结合引用内容,我们注意到bind-address配置可能导致连接问题(引用[1])。以下将系统性地解决此问题。 </think>### 解决phpMyAdmin控制用户连接失败的完整方案 当phpMyAdmin提示"使用配置文件中定义的控制用户连接失败"时,通常由以下原因导致。请按顺序排查: #### 一、核心配置文件检查(`config.inc.php`) ```php /* 服务器配置 */ $cfg['Servers'][$i]['host'] = 'localhost'; // 需与实际MySQL地址一致 $cfg['Servers'][$i]['port'] = '3306'; // 默认3306,使用其他端口需修改 $cfg['Servers'][$i]['controluser'] = 'pma';// 控制用户名 $cfg['Servers'][$i]['controlpass'] = 'your_password'; // 控制用户密码 ``` **关键验证点**: 1. `host` 值需与MySQL实际地址匹配: - 本地服务器:`localhost` 或 `127.0.0.1` - 远程服务器MySQL服务器的真实IP 2. `port` 必须与MySQL服务端口一致(默认3306) 3. 检查`controluser`和`controlpass`是否与MySQL账户完全一致(区分大小写) > **注意**:若MySQL配置了`bind-address=127.0.0.1`(如引用[1]所述),远程连接将被拒绝。需注释该行或改为`0.0.0.0`[^1]。 #### 二、MySQL服务端配置排查 1. **验证控制账户存在性**: ```sql SELECT User, Host FROM mysql.user WHERE User = 'pma'; ``` 若查询为空,需创建用户: ```sql CREATE USER 'pma'@'localhost' IDENTIFIED BY 'secure_password'; ``` 2. **授予必要权限**: ```sql GRANT USAGE ON *.* TO 'pma'@'localhost'; GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO 'pma'@'localhost'; FLUSH PRIVILEGES; ``` 3. **初始化phpMyAdmin系统表**: ```bash mysql -u root -p < /usr/share/phpmyadmin/sql/create_tables.sql ``` #### 三、网络与端口连通性测试 1. **检查MySQL端口监听**: ```bash netstat -tuln | grep 3306 # 替换实际端口 ``` 预期输出:`tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN` 2. **防火墙放行端口**: ```bash sudo ufw allow 3306 # Ubuntu firewall-cmd --add-port=3306/tcp --permanent # CentOS ``` 3. **本地连接测试**: ```bash mysql -u pma -p -h 127.0.0.1 -P 3306 ``` #### 四、错误日志分析 1. **MySQL错误日志**(通常位于`/var/log/mysql/error.log`): ``` [ERROR] Access denied for user 'pma'@'localhost' ``` 表示权限问题,需重新授权[^1]。 2. **phpMyAdmin日志**: 在`config.inc.php`开启日志: ```php $cfg['LogFileName'] = '/tmp/phpmyadmin.log'; ``` #### 五、配置流程图解 ```mermaid graph TD A[检查config.inc.php] --> B{host/port正确?} B -->|否| C[修正配置] B -->|是| D{MySQL用户存在?} D -->|否| E[创建控制用户] D -->|是| F{端口可访问?} F -->|否| G[开放防火墙] F -->|是| H[查看日志] H --> I[解决问题] ``` #### 六、特殊场景处理 - **主从复制环境**:确保phpMyAdmin连接主库(引用[2]) - **内存限制**:调整`query_cache_size`(引用[3]) - **IPv6问题**:尝试使用`127.0.0.1`替代`localhost` --- ### 相关问题 1. 如何修改MySQL的默认监听端口为3307? 2. 当MySQL端口被防火墙拦截时如何排查? 3. phpMyAdmin控制用户需要哪些最小权限? 4. 如何通过日志诊断数据库连接失败的根本原因? 5. 主从复制环境中phpMyAdmin应连接主库还是从库?[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值