web-dev-qa-db-ja.com

MySQLをMariaDBにシームレスに置き換えることはできますか、それともこの場合に変更する必要がありますか?

MySQL 5.1サーバーをMySQL(MyISAM&InnoDB)ではなくMariaDBサーバー(Maria&XtraDBストレージ)に置き換えると、ほとんどのMySQLクライアントソフトウェア(PHP 5.2およびJava SE 1.6)...

  1. 変更を加えずに作業を続けますか?
  2. または、クライアントドライバーを置き換え/再構成する必要がありますか(別のJDBCドライバークラスと接続文字列を使用するなど)?
  3. それとも、アプリケーションコードを変更する必要がありますか?
27
Ivan

http://kb.askmonty.org/v/mariadb-versus-mysql

すべてのMySQLコネクタ(PHP、Perl、Python、Java、MyODBC、Ruby、MySQL Cコネクタなど)は、MariaDBで変更せずに動作します。

37
Qwerty

OracleのMySQLの代わりにMariadbを何年も使用しています。より速く、非常に信頼できます。 aptにはほとんど注意が必要ですが、深刻なものは何もありません。また、Mariadbには細かい点が1つあります。ログに[エラー]「PHP警告:mysql_connect():ヘッダーとクライアントライブラリのマイナーバージョンの不一致」が表示されます。手動でコンパイルを開始する以外の解決策は見つかりませんでした: askMonty

$php -i | grep 'Client API'

Client API version => 5.3.7-MariaDB
Client API library version => 5.3.7-MariaDB
Client API header version => 5.1.61
Client API version => 5.3.7-MariaDB
1
Peter

変更を加えずに作業を続けますか?

同じバージョンに置き換える限り、問題は発生しません。現在MySQL 5.1を使用している場合は、MariaDB 5.1に置き換えることができます。 5.5を使用している場合は、対応するものを使用します。 MariaDB v5.2とv5.3、および5.1の拡張バージョン。

または、クライアントドライバーを置き換え/再構成する必要がありますか(別のJDBCドライバークラスと接続文字列を使用するなど)?

すべきではない。 MySQLとMariaDBはどちらも同じプロトコルと全体的な構文を使用しますが、場合によってはいくつかの例外があります。別の回答で引用されているURLは素晴らしいリソースです: http://kb.askmonty.org/v/mariadb-versus-mysql

運転免許については、プロジェクトを商業的に配布する場合は違いがあります。その場合は、ライセンス条項を再確認することをお勧めします。懸念がある場合は、別の回答で提案されているように、MariaDB/SkySQLバージョンのコネクタを使用してください。詳細は http://www.skysql.com/downloads/Java-cc-connectors-mariadb を確認してください。

それとも、アプリケーションコードを変更する必要がありますか?

アプリケーションコードは変更しないでください。

1
seattlegaucho

MariaDBはMySQLが進化したものです。

また、MySQLとMariaDBの背後にいる同じ開発者でもあります。それはほとんど同じです(そうでない場合、MariaDBはMySQLが改善されたと言えるだけです)。

PHPで何も変更する必要はありません。

0
AntoineWtrd

Mysqlドライバー/ CodeIgniterとの互換性を必要とするほんの少しのフィードバック。数分前にBIT属性タイプの問題に遭遇しました。

サーバーから値が取得されませんでした。いつも空っぽでした。 「mysql」ドライバーを使用する標準のCIデータベース構成を使用していました。 database.phpのドライバーを「mysqli」に変更した後、問題が解決しました。

古いmysqlドライバーを使用している場合は、いくつかの違いがある可能性があることを示しています。

$db['default']['dbdriver'] = 'mysqli';

MariaDBクライアントAPIバージョン5.5.40

0
Tom