🗣 Wd提问: php连接mysql Laravel
🤖 Ai回答: 在 Laravel 中连接 MySQL 数据库非常简单,Laravel 默认就支持 MySQL,并且通过配置文件和 ORM(Eloquent)提供了强大的数据库操作能力。以下是完整的步骤:
✅ 一、环境要求
PHP = 8.1(推荐)
Composer 已安装
MySQL 服务正在运行
Laravel 项目已创建(如未创建,可使用 `composer create-project laravel/laravel your-project-name`)
✅ 二、配置数据库连接(.env 文件)
打开项目根目录下的 `.env` 文件,找到以下部分并修改为你的 MySQL 配置:
env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
💡 示例:
env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=root
DB_PASSWORD=123456
✅ 三、验证数据库连接(可选)
你可以使用 Artisan 命令测试数据库是否能正常连接:
bash
php artisan tinker
然后在 Tinker 中执行:
php
DB::connection()-getPdo();
如果没报错,说明连接成功!
✅ 四、使用 Eloquent ORM 操作数据库(推荐)
1、创建模型和迁移文件(以 User 为例)
bash
php artisan make:model User -m
这会生成 `app/Models/User.php` 和 `database/migrations/xxxx_xx_xx_xxxxxx_create_users_table.php`
2、编辑迁移文件(示例)
php
// database/migrations/xxxx_xx_xx_xxxxxx_create_users_table.php
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table-id();
$table-string('name');
$table-string('email')-unique();
$table-timestamp('email_verified_at')-nullable();
$table-string('password');
$table-rememberToken();
$table-timestamps();
});
}
3、执行迁移
bash
php artisan migrate
⚠️ 如果报错:`SQLSTATE[HY000] [2002] Connection refused`,请检查 MySQL 是否启动、用户名密码是否正确。
✅ 五、在控制器或路由中操作数据库
示例:在路由中插入数据
编辑 `routes/web.php`:
php
use Illuminate\Support\Facades\DB;
use App\Models\User;
Route::get('/test-db', function () {
// 使用 Query Builder
DB::table('users')-insert([
'name' = 'John Doe',
'email' = 'john@65.hk',
'password' = bcrypt('secret'),
'created_at' = now(),
'updated_at' = now(),
]);
// 或者使用 Eloquent
User::create([
'name' = 'Jane Doe',
'email' = 'jane@65.hk',
'password' = bcrypt('secret'),
]);
return Data inserted!;
});
访问 `http://localhost:8000/test-db` 即可看到效果。
✅ 六、常见问题解决
❌ 错误1:`PDOException: SQLSTATE[HY000] [2002] Connection refused`
检查 MySQL 是否运行:`sudo systemctl status mysql`
检查 `.env` 中的 `DB_HOST` 是否为 `localhost` 或 `127.0.0.1`
检查端口是否被占用或防火墙阻止
❌ 错误2:`Access denied for user 'root'@'localhost'`
确保用户名密码正确
可尝试给用户授权:
sql
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
然后在 `.env` 中使用这个新用户。
✅ 七、高级配置(database.php)
你也可以在 `config/database.php` 中自定义连接配置(一般不需要修改):
php
'mysql' = [
'driver' = 'mysql',
'host' = env('DB_HOST', '127.0.0.1'),
'port' = env('DB_PORT', '3306'),
'database' = env('DB_DATABASE', 'forge'),
'username' = env('DB_USERNAME', 'forge'),
'password' = env('DB_PASSWORD', ''),
'unix_socket' = env('DB_SOCKET', ''),
'charset' = 'utf8mb4',
'collation' = 'utf8mb4_unicode_ci',
'prefix' = '',
'prefix_indexes' = true,
'strict' = true,
'engine' = null,
'options' = extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA = env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
✅ 总结
| 步骤 | 操作 |
| 1 | 修改 `.env` 配置 MySQL 连接信息 |
| 2 | 执行 `php artisan migrate` 创建表 |
| 3 | 使用 Eloquent 或 Query Builder 操作数据 |
| 4 | 路由/控制器中调用即可 |
✅ 现在你已经成功在 Laravel 中连接并操作 MySQL 数据库了!
如有具体错误或需求(比如多数据库、读写分离、Docker 部署等),欢迎继续提问!
📣 商家广告 :
👍
0
👎
IP地址: 213.71.226.152
搜索次数: 0
提问时间: 2025-11-10 09:04:41
🛒 域名购买 :
xc6.net tui.men 53.biz ftp.gs 827.net.cn txqg.cn souhuai.com.cn toutian.com.cn suosou.com.cn wzsx.net
❓️ 热门提问 :
电信主机租用 电子商务网站建设 中奇香港花园 阿里最便宜的云服务器多少钱 后台挂机游戏 网站流量的统计 SEO工具在线 宝塔云服务器购买 ftp服务器linux搭建 搜索引擎关键词工具费用 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
evtol.jx.cn 61.gold 27.gold vtol.fj.cn dji.xz.cn r.xj.cn p.qh.cn xphone.uno byd.he.cn pamv.cn
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
贵阳水电安装公司
广州番禺月饼厂
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。