前提・実現したいこと
EC2(Amazon Linux2)にFuelPHP1.8.1をインストールし、環境構築をしているのですが、oil refine migrateから先に進めず、途方に暮れています。
実現したいことは、AWSのAuroraに作成済のデータベースに、oilコマンドでマイグレーションファイルをテーブル化することです。
エラーを検索してネットに書いてあることは試してみたのですが、状況が改善されないため、こちらに質問させていただきました。よろしくお願いいたします。
状況
php oil g model...
により
001_create_posts.php というマイグレーションファイルを作成。
EC2にログインの上、
php oil refine migrate
をすると、下記のエラーメッセージが出ます。
発生している問題・エラーメッセージ
Uncaught exception Fuel\Core\Database_Exception: 2002 - SQLSTATE[HY000] [2002] Permission denied in /var/www/nex/fuel/core/classes/database/pdo/connection.php on line 86 Callstack: #0 /var/www/nex/fuel/core/classes/database/pdo/connection.php(148): Fuel\Core\Database_PDO_Connection->connect() #1 /var/www/nex/fuel/core/classes/database/schema.php(177): Fuel\Core\Database_PDO_Connection->query(1, 'SELECT * FROM `...', false) #2 [internal function]: Fuel\Core\Database_Schema->table_exists('migration') #3 /var/www/nex/fuel/core/classes/database/connection.php(342): call_user_func_array(Array, Array) #4 /var/www/nex/fuel/core/classes/dbutil.php(387): Fuel\Core\Database_Connection->schema('table_exists', Array) #5 /var/www/nex/fuel/core/classes/migrate.php(641): Fuel\Core\DBUtil::table_exists('migration') #6 /var/www/nex/fuel/core/classes/migrate.php(74): Fuel\Core\Migrate::table_version_check() #7 [internal function]: Fuel\Core\Migrate::_init() #8 /var/www/nex/fuel/core/classes/autoloader.php(377): call_user_func('Migrate::_init') #9 /var/www/nex/fuel/core/classes/autoloader.php(249): Fuel\Core\Autoloader::init_class('Migrate') #10 [internal function]: Fuel\Core\Autoloader::load('Migrate') #11 /var/www/nex/fuel/core/tasks/migrate.php(283): spl_autoload_call('Migrate') #12 /var/www/nex/fuel/core/tasks/migrate.php(197): Fuel\Tasks\Migrate::_run('default', 'app') #13 /var/www/nex/fuel/core/base56.php(37): Fuel\Tasks\Migrate->__call('_run', Array) #14 /var/www/nex/fuel/packages/oil/classes/refine.php(106): call_fuel_func_array(Array, Array) #15 [internal function]: Oil\Refine::run('\Fuel\Tasks\Mig...', Array) #16 /var/www/nex/fuel/packages/oil/classes/command.php(124): call_user_func('Oil\Refine::run', 'migrate', Array) #17 /var/www/nex/oil(68): Oil\Command::init(Array) #18 {main} Previous exception: Uncaught exception PDOException: 2002 - SQLSTATE[HY000] [2002] Permission denied in /var/www/nex/fuel/core/classes/database/pdo/connection.php on line 470 Callstack: #0 /var/www/nex/fuel/core/classes/database/pdo/connection.php(470): PDO->__construct('mysql:host=loca...', 'root', 'root', Array) #1 /var/www/nex/fuel/core/classes/database/pdo/connection.php(72): Fuel\Core\Database_PDO_Connection->_connect() #2 /var/www/nex/fuel/core/classes/database/pdo/connection.php(148): Fuel\Core\Database_PDO_Connection->connect() #3 /var/www/nex/fuel/core/classes/database/schema.php(177): Fuel\Core\Database_PDO_Connection->query(1, 'SELECT * FROM `...', false) #4 [internal function]: Fuel\Core\Database_Schema->table_exists('migration') #5 /var/www/nex/fuel/core/classes/database/connection.php(342): call_user_func_array(Array, Array) #6 /var/www/nex/fuel/core/classes/dbutil.php(387): Fuel\Core\Database_Connection->schema('table_exists', Array) #7 /var/www/nex/fuel/core/classes/migrate.php(641): Fuel\Core\DBUtil::table_exists('migration') #8 /var/www/nex/fuel/core/classes/migrate.php(74): Fuel\Core\Migrate::table_version_check() #9 [internal function]: Fuel\Core\Migrate::_init() #10 /var/www/nex/fuel/core/classes/autoloader.php(377): call_user_func('Migrate::_init') #11 /var/www/nex/fuel/core/classes/autoloader.php(249): Fuel\Core\Autoloader::init_class('Migrate') #12 [internal function]: Fuel\Core\Autoloader::load('Migrate') #13 /var/www/nex/fuel/core/tasks/migrate.php(283): spl_autoload_call('Migrate') #14 /var/www/nex/fuel/core/tasks/migrate.php(197): Fuel\Tasks\Migrate::_run('default', 'app') #15 /var/www/nex/fuel/core/base56.php(37): Fuel\Tasks\Migrate->__call('_run', Array) #16 /var/www/nex/fuel/packages/oil/classes/refine.php(106): call_fuel_func_array(Array, Array) #17 [internal function]: Oil\Refine::run('\Fuel\Tasks\Mig...', Array) #18 /var/www/nex/fuel/packages/oil/classes/command.php(124): call_user_func('Oil\Refine::run', 'migrate', Array) #19 /var/www/nex/oil(68): Oil\Command::init(Array) #20 {main}
試したこと
①mysql.sockを下記に配置(mysql.sockの中身は空)
/var/lib/mysql/mysql.sock
②php.iniの設定を下記のように追記
mysql.default_socket = /var/lib/mysql/mysql.sock
pdo.mysql.default_socket = /var/lib/mysql/mysql.sock
③FuelPHPのapp/config/db.phpのdbnameのおしりに「unix_socket=/var/lib/mysql/mysql.sock」を追記
PHP
1return array( 2 'default' => array( 3 'connection' => array( 4 'dsn' => 'mysql:host={Auroraのクラスターエンドポイント};dbname={DB名};unix_socket=/var/lib/mysql/mysql.sock', 5 'username' => '{ユーザー名}', 6 'password' => '{マスターパスワード}', 7 ), 8 ), 9);
★それぞれの環境毎のdb.phpファイルにも同様の記述をしています。
補足情報(FW/ツールのバージョンなど)
OSはAmazon Linux2、DBはAurora(mysql)、FuelPHPのバージョンは1.8.1です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/27 02:56
2018/11/27 03:03
2018/11/28 00:56
2018/11/28 01:56
2018/11/28 04:19
2018/12/07 01:41