序文 MySQL データベースのデフォルトのデータベース ファイルは /var/lib/mysql にあります。場合によっては、ストレージ計画やその他の理由により、MySQL データベースのデータ ストレージ ディレクトリを変更する必要があることがあります。以下は実際のプロセスの手順の概要です。では早速、見ていきましょう。 方法は次のとおりです。 1: MySQLデータベースの保存ディレクトリを確認する [root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadir パスワードを入力してください: | データディレクトリ | /var/lib/mysql/ 2: MySQLサービスをシャットダウンする MySQL データ ディレクトリを変更する前に、MySQL サービスをシャットダウンする必要があります。 方法1: [root@DB-Server ~]# サービスmysqlステータス MySQL 実行中 (9411) [ OK ] [root@DB-Server ~]# サービスmysql停止 MySQL をシャットダウンしています...[OK] [root@DBサーバー ~]# 方法2: [root@DB-Server ~]# /etc/rc.d/init.d/mysql ステータス MySQL 実行中 (8900) [ OK ] [root@DB-Server ~]# /etc/rc.d/init.d/mysql を停止します MySQL をシャットダウンしています...[OK] [root@DBサーバー ~]# 3: 新しいデータベース保存ディレクトリを作成する [root@DB-Server ~]# cd /u01 [root@DB-Server u01]# mkdir mysqldata 4: MySQLデータディレクトリを新しい場所に移動する [root@DB-Server ~]# mv /var/lib/mysql /u01/mysqldata/ 5: 設定ファイルmy.cnfを変更する すべてのバージョンに my.cnf 構成ファイルが含まれているわけではありません。MySQL 5.5 では、my.cnf 構成ファイルが見つかりません。一部の MySQL バージョンでは、このファイルは /usr/my.cnf にあります。/etc/ ディレクトリに my.cnf 構成ファイルがない場合は、/usr/share/mysql/ で *.cnf ファイルを探し、そのうちの 1 つを /etc/ にコピーして、名前を my.cnf に変更してください。コマンドは次のとおりです。 [root@DB-Server mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf /etc/my.cnfファイルを編集し、ソケットパラメータを変更します。 MySQL 5.5 バージョン # 以下のオプションはすべてのMySQLクライアントに渡されます [クライアント] #パスワード = あなたのパスワード ポート = 3306 ソケット = /u01/mysqldata/mysql/mysql.sock # 以下に特定のプログラムに関するエントリを示します # MySQL サーバー [mysqld] ポート = 3306 ソケット = /u01/mysqldata/mysql/mysql.sock 外部ロックをスキップ キーバッファサイズ = 16M 最大許容パケット = 1M テーブルオープンキャッシュ = 64 ソートバッファサイズ = 512K ネットバッファ長 = 8K 読み取りバッファサイズ = 256K 読み取りバッファサイズ = 512K myisam_sort_buffer_size = 8M 6: 起動スクリプト /etc/init.d/mysql を変更する パラメータdatadirをdatadir=/u01/mysqldata/mysql/に変更します。 7: MySQLサービスを起動し、MySQLデータベースパスを確認する [root@DB-Server ~]# サービスmysql 開始 MySQL を起動しています。[OK] [root@DB-Server ~]# mysqladmin -u root -p variables | grep datadir パスワードを入力してください: | データディレクトリ | /u01/mysqldata/mysql/ 私の質問: 1: データベース保存ディレクトリを変更する前は、/var/lib/mysql/ ディレクトリに mysql.sock ファイルがありません。上記の設定をインストールすると、mysql.sock ファイルが生成されます。 mysql.sock ファイルに関して、情報を検索しました: mysql.sock はソケット接続に使用されるファイルです。つまり、このファイルはデーモンが起動されたときにのみ存在します。ただし、mysql プログラム (このプログラムはクライアント、サーバーは mysqld) は、あらゆるタイプの非ローカル ホストに対して、接続に mysql.sock ファイルを使用するかどうかを選択できます (この方法は、Unix ホスト上のローカル mysqld に接続する場合にのみ適しているため)。このファイルは絶対に必要ですか? これについてはさらに説明が必要です。 2: ネット上でMySQLデータパスを変更する方法をまとめているネットユーザーを見ました。その中には、新しく作成したディレクトリの権限処理を必要とするものもあれば、ディレクトリ権限の承認を必要としないものもあります。私はそれらを処理せず、問題はありませんでした。新しいデータベース ディレクトリを承認する必要がありますか? 3: MySQL_5.6.20バージョンをテストした際、my.cnfは修正せず、起動スクリプト/etc/init.d/mysqlのみ修正しましたが、全く問題ありませんでした。 myssql.sock ファイルも生成されません。 4: selinux が無効になっていない場合、MySQL データ パスを変更した後に MySQL サービスを起動するとエラーが発生する可能性があることに注意してください。この理由としては、バックグラウンド サービスには対応するディレクトリに対する対応する権限が必要であり、mysql のデフォルト パス /var/lib/mysql には対応するポリシーが追加されていることが挙げられます。パスが変更された後、対応するポリシーがないため、バックグラウンド プロセスは selinux によってファイルの読み取りをブロックされ、権限エラーが発生します。 したがって、Selinux をオフにするか、ファイルのセキュリティ コンテキストを変更してください。 [root@DB-Server mysql]# /etc/init.d/mysql を起動します MySQL を起動しています....サーバーは PID ファイル (/u01/mysqldata/mysql//DB-Server.localdomain.pid) を更新せずに終了しました。[失敗] [root@DBサーバーmysql]# [root@DBサーバーmysql]# chcon -R -t mysqld_db_t /u01/mysqldata/mysql/ [root@DB-Server mysql]# /etc/init.d/mysql を起動します MySQL を起動しています。[OK] [root@DBサーバーmysql]# 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 参考文献: http://database.ctocio.com.cn/tips/449/7566949.shtml https://www.jb51.net/article/150089.htm https://www.jb51.net/article/150090.htm 以下もご興味があるかもしれません:
|
<<: docker-compose を使用して MySQL を実行する方法
>>: vue-cropper コンポーネントは画像の切り取りとアップロードを実現します
要件:ページ コンテンツが短く、ブラウザーの高さをサポートできない場合でも、フッターをウィンドウの下...
序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...
Windows で Nginx を使用するには、Nginx サービスの起動、停止、Nginx のリロ...
この記事では、9グリッドクリックの色変更効果を実現するためのJavaScriptの具体的なコードを参...
オンライン情報を参考に、cmakeを使用してCentOS6.8サーバーにMySQL5.7.18をイン...
Web 開発を行う際に、フラッシュがページ内の要素をブロックする状況に遭遇することがあります。フラ...
私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...
1. concat() 関数機能: 複数の文字列を 1 つの文字列に連結する構文: concat(s...
学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...
ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...
現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...
1. RPMバージョンのインストールデータベースの他のバージョンがあるかどうかを確認し、ある場合は完...
目次1. はじめに2. レンダリング3. コード4. 学生情報管理システムのメインインターフェース1...
現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...
HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...