php - 无法将 docker mysql 数据库连接到 codeigniter 应用程序
问题描述
我正在使用 ubuntu 18.04。我已经在 docker 中安装了 mysql 服务器。我无法将 mysql 数据库连接到 codeigniter 项目。
我使用以下命令创建了 mysqldb
docker run -p 3306:3306 --name mysql_80 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:8 mysqld --default-authentication-plugin=mysql_native_password
数据库在 docker 上运行。我可以通过 phpmyadmin 访问。
容器 ID 图像命令创建的状态端口名称 6c6474ed3f9d mysql:8 "docker-entrypoint.s…" 17 秒前 Up 14 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql_80
这是我的 database.php
$db['default']['hostname'] = '0.0.0.0:3306';
$db['default']['username'] = 'root';
$db['default']['password'] = '1234';
$db['default']['database'] = 'mydb';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['port'] = '3306';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['default']['failover'] = array();
$db['default']['save_queries'] = TRUE;
当我尝试访问 codeigniter 应用程序时,出现以下错误:
发生数据库错误
无法使用提供的设置连接到您的数据库服务器。
文件名:core/Loader.php
行号:346
我尝试使用终端访问 mysql db。我有一个错误
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
谁能帮我解决这个问题。
版本
mysql Ver 14.14 Distrib 5.7.28 和 php 7.2
谢谢你。
解决方案
改变这个:
$db['default']['hostname'] = '0.0.0.0:3306';
至:
$db['default']['hostname'] = '127.0.0.1:3306';
0.0.0.0 不是有效的连接IP地址,请注意我还假设您的APP是直接在主机上运行而不是在容器中
并改变:
docker run -p 3306:3306 --name mysql_80 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:8 mysqld --default-authentication-plugin=mysql_native_password
至 :
docker run -p 3306:3306 --name mysql_80 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:8 --default-authentication-plugin=mysql_native_password
您不需要指定 mysqld 命令,因为它已经是 mysql 映像中的入口点
推荐阅读
- hm-10 - 首次配对后的 hm-10 SHIELD 辅助命令
- amazon-web-services - 在 AWS 组织中部署 lambda 函数
- r - 如何将有序年龄类别转换为连续变量?
- reactjs - 我是反应的初学者。我想保存每个 LI 中的所有值,以及一些关于如何使用道具的一般准则
- javascript - [pde-processing] 文件如何与 [html-webpage] 一起使用
- c++ - 如何让函数具有不同的返回类型?C++
- amazon-web-services - AWS s3api 命令获取 lastmodified 大于 yyyy-mm-dd HH:MM:SS 的列表对象
- angular - 未定义角度标识符“playerType”。'' 不包含这样的成员
- java - Java:如何使用记录器将多个类记录到同一个文件中?
- php - 使用 Symfony 自定义表单