エラー: mysql から mariadb に変更した後、ドライバーが見つかりませんでした

エラー: mysql から mariadb に変更した後、ドライバーが見つかりませんでした

mysql は正常に動作していましたが、新しいサーバーで mariadb を試してみたかったのです。しかし、すべての php ウェブサイトで mariadb との通信に問題があるようです。Webmin は動作しますが、mysql でこの警告が表示されます。

警告: Perl モジュール DBD::mysql がシステムにインストールされていないため、Webmin は MySQL データベースに確実にアクセスできません。今すぐインストールするには、ここをクリックしてください。

私が見つけた解決策の1つはphp-mysqlをインストールすることですが、次のエラーが発生します

~]# yum install php-mysql
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.sunet.se
 * extras: ftp.sunet.se
 * updates: ftp.sunet.se
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-mysql.x86_64 0:5.3.3-23.el6_4 will be installed
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: php-mysql-5.3.3-23.el6_4.x86_64
Package mysql-libs-5.1.69-1.el6_4.x86_64 is obsoleted by MariaDB-shared-5.5.33a-1.i686 which is already installed
--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: php-mysql-5.3.3-23.el6_4.x86_64
Package mysql-libs-5.1.69-1.el6_4.x86_64 is obsoleted by MariaDB-shared-5.5.33a-1.i686 which is already installed
--> Finished Dependency Resolution
Error: Package: php-mysql-5.3.3-23.el6_4.x86_64 (updates)
           Requires: libmysqlclient.so.16(libmysqlclient_16)(64bit)
           Available: mysql-libs-5.1.66-2.el6_3.x86_64 (base)
               libmysqlclient.so.16(libmysqlclient_16)(64bit)
           Available: mysql-libs-5.1.67-1.el6_3.x86_64 (updates)
               libmysqlclient.so.16(libmysqlclient_16)(64bit)
           Available: mysql-libs-5.1.69-1.el6_4.x86_64 (updates)
               libmysqlclient.so.16(libmysqlclient_16)(64bit)
Error: Package: php-mysql-5.3.3-23.el6_4.x86_64 (updates)
           Requires: libmysqlclient.so.16()(64bit)
           Available: mysql-libs-5.1.66-2.el6_3.x86_64 (base)
               libmysqlclient.so.16()(64bit)
           Available: mysql-libs-5.1.67-1.el6_3.x86_64 (updates)
               libmysqlclient.so.16()(64bit)
           Available: mysql-libs-5.1.69-1.el6_4.x86_64 (updates)
               libmysqlclient.so.16()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

これは、mysqlでは動作するがmariadbでは動作しない私のphpスクリプトの完全なエラーです。

エラー: ドライバーが見つかりませんでした 通知: /var/www/html/index.php の 137 行目で未定義のオフセット: 0 致命的なエラー: /var/www/html/classes/DB.class.php の 75 行目で非オブジェクトに対してメンバー関数 prepare() を呼び出しました

5.5.33a-MariaDB MariaDB Server Centos 6.4 ターミナルで mysql にログインすると、mariadb のバージョンが表示されます。また、webmin でテーブルを表示および管理することもできますが、wordpress を含むすべての php スクリプトが機能しません。

答え1

MariaDBナレッジベースのこのヒントをご覧ください。記事のタイトルは、MySQL から MariaDB にアップグレードするにはどうすればよいですか?

これについては、次のタイトルの記事でも取り上げられています。CentOS 6 に LEMP サーバー (Nginx、MariaDB、PHP) をインストールする

つまり、これらの依存関係を解決するには、サードパーティのリポジトリである REMI を利用する必要があります。

$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

MySQL から MariaDB に移行する方法の詳細については、LEMP の記事の指示に従ってください。

関連情報