Linux で MySQL をインストールして設定する

Linux で MySQL をインストールして設定する

システム: Ubuntu 16.04LTS

1\公式サイトからmysql-5.7.18-linux-glibc2.5-x86_64.tar.gzをダウンロードします

2\ワーキンググループを設立する:

$ス
#グループ追加mysql
#useradd -r -g mysql mysql

3\ディレクトリを作成する

#mkdir /usr/local/mysql
#mkdir /usr/local/mysql/data

4\mysql-5.7.18-linux-glibc2.5-x86_64.tar.gzを解凍し、/usr/local/mysqlにコピーします。

#tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
#cp -r /home/jieyamulu/mysql-5.7.18-linux-glibc2.5-x86_64/* /usr/local/mysql

5\mysqlユーザーのmysqlとそのサブフォルダのファイルに対する権限を変更します。変更後、llを使用して権限を表示できます。

root@Ice-***:/usr/local# chown -R mysql:mysql mysql
ルート@Ice-***:/usr/local#ll
総投与量 44
drwxr-xr-x 11 ルート ルート 4096 5月19日 07:39 ./
drwxr-xr-x 11 ルート ルート 4096 2月16日 04:30 ../
drwxr-xr-x 2 ルート ルート 4096 2月16日 04:19 bin/
drwxr-xr-x 2 ルート ルート 4096 2月16日 04:19 etc/
drwxr-xr-x 2 ルート ルート 4096 2月16日 04:19 ゲーム/
drwxr-xr-x 2 ルート ルート 4096 2月16日 04:19 include/
drwxr-xr-x 4 ルート ルート 4096 2月16日 04:23 lib/
lrwxrwxrwx 1 root root 9 3月29日 14:11 man -> share/man/
drwxr-xr-x 10 mysql mysql 4096 5月19日 07:48 mysql/
drwxr-xr-x 2 ルート ルート 4096 2月16日 04:19 sbin/
drwxr-xr-x 8 ルート ルート 4096 2月16日 04:34 シェア/
drwxr-xr-x 2 ルート ルート 4096 2月16日 04:19 src/
root@Ice-***:/usr/local# cd mysql/
ルート@Ice-***:/usr/local/mysql#ll
総投与量 64
drwxr-xr-x 10 mysql mysql 4096 5月19日 07:48 ./
drwxr-xr-x 11 ルート ルート 4096 5月19日 07:39 ../
drwxr-xr-x 2 mysql mysql 4096 5月19日 07:48 bin/
-rw-r--r-- 1 mysql mysql 17987 5月19日 07:48 コピー中
drwxr-xr-x 2 mysql mysql 4096 5月19日 07:41 データ/
drwxr-xr-x 2 mysql mysql 4096 5月19日 07:48 docs/
drwxr-xr-x 3 mysql mysql 4096 5月19日 07:48 include/
drwxr-xr-x 5 mysql mysql 4096 5月19日 07:48 lib/
drwxr-xr-x 4 mysql mysql 4096 5月19日 07:48 男/
-rw-r--r-- 1 mysql mysql 2478 5月19日 07:48 README
drwxr-xr-x 28 mysql mysql 4096 5月19日 07:48 シェア/
drwxr-xr-x 2 mysql mysql 4096 5月19日 07:48 サポートファイル/

6\/etc/my.cnf設定ファイルを変更(または作成)する

root@Ice-***:/usr/local/mysql# vim /etc/my.cnf 
[mysqld] ベースディレクトリ=/usr/local/mysql/
データディレクトリ=/usr/local/mysql/data
:wq

7\最も重要な初期化

# cd /usr/local/mysql/
root@Ice-***:/usr/local/mysql# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

2017-05-19T00:15:46.529420Z 0 [警告] 暗黙の DEFAULT 値を持つ TIMESTAMP は非推奨です。--explicit_defaults_for_timestamp サーバー オプションを使用してください (詳細についてはドキュメントを参照してください)。
2017-05-19T00:15:47.066125Z 0 [警告] InnoDB: 新しいログ ファイルが作成されました。LSN=45790
2017-05-19T00:15:47.213711Z 0 [警告] InnoDB: 外部キー制約システム テーブルを作成しています。
2017-05-19T00:15:47.286951Z 0 [警告] 既存の UUID が見つからないため、このサーバーが初めて起動されたと想定します。新しい UUID を生成しています: 4e958344-3c28-11e7-8334-c8d3ffd2db82。
2017-05-19T00:15:47.292857Z 0 [警告] Gtid テーブルは使用準備ができていません。テーブル 'mysql.gtid_executed' を開くことができません。
2017-05-19T00:15:47.294758Z 1 [注記] root@localhost の一時パスワードが生成されました: YjaotQk*2ew4

初期パスワードは覚えておく必要があります。ここでは次のような多くの問題が発生する可能性があります。

MySQL システム テーブルをインストールしています..../bin/mysqld: 共有ライブラリのロード中にエラーが発生しました: libaio.so.1: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません

依存パッケージが不足しています

解決策: sudo apt-get install libaio-dev

前の手順が間違っていて、データ ファイルの操作権限が不十分になっている可能性もあります。手順に従って、不足しているものをインストールします (プロンプトが表示されます)。この時点で、初期化は成功するはずです。警告の中には、Gtid テーブルが使用準備ができていないことが記されています。テーブル 'mysql.gtid_executed' を開くことができません。時間があるときに何が起こっているか確認できます。これを無視しても影響はありません。

8\急いで起動しないでください。今は起動できません。データフォルダを除くmysqlの下のファイルをルート権限に変更するコードを実行します。

root@Ice-***:/usr/local/mysql# chown -R root .
root@Ice-***:/usr/local/mysql# chown -R mysqlデータ

9\開始

root@Ice-***:/usr/local/mysql# bin/mysqld_safe --user=mysql &

Enterキーを押します

ルート@Ice-***:/usr/local/mysql# /usr/local/mysql/bin/mysql -uroot -p

パスワードを入力してください: 
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは3です
サーバーバージョン: 5.7.18

Copyright (c) 2000, 2017, Oracle およびその関連会社。無断複写・転載を禁じます。

OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。

ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。

mysql> データベースを表示します。
エラー 1820 (HY000): このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります。
マイSQL> 

10\パスワードをリセット

mysql> パスワードの設定 = PASSWORD('newpasswd');
クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.00 秒)

mysql> データベースを表示します。
+--------------------+
| データベース |
+--------------------+
| 情報スキーマ |
|mysql |
| パフォーマンススキーマ |
|システム|
+--------------------+
セット内の 4 行 (0.00 秒)
mysql>終了
さよなら

11\起動の設定

root@Ice-***:/usr/local/mysql# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
root@Ice-***:/usr/local/mysql# chmod 755 /etc/init.d/mysqld

12\mysql-serverとmysql-clientをインストールする

root@Ice-***:~# apt-get install mysql-server
root@Ice-***:~# apt-get install mysql-client
root@Ice-***:~# apt-get install libmysqlclient-dev


E: サブプロセス /usr/bin/dpkg がエラーコードを返しました (1)

解決:

1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //infoフォルダの名前を変更する
2.$ sudo mkdir /var/lib/dpkg/info //新しいinfoフォルダを作成する
3.$ sudo apt-get update、
$ apt-get -f install //依存関係ツリーを修復
4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //前の手順を実行すると、新しいinfoフォルダにいくつかのファイルが生成されます。これらのファイルをすべてinfo_oldフォルダに移動します。
5.$ sudo rm -rf /var/lib/dpkg/info //新しく作成されたinfoフォルダを削除します
6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //以前のinfoフォルダの名前を元の名前に戻します

最後に、Ubuntu システムの場合は、テーブルに中国語の文字を挿入できない可能性があり、テーブルから中国語の文字を照会できない可能性があります。

解決:

データベースサービスをシャットダウンする

サービスmysql停止
~$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]の下にcharacter_set_server=utf8という行を追加します。
設定ファイルの抜粋:

[mysqld]
#
# * 基本設定
#
ユーザー = mysql
pid ファイル = /var/run/mysqld/mysqld.pid
ソケット = /var/run/mysqld/mysqld.sock
ポート = 3306
ベースディレクトリ = /usr
データディレクトリ = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
character_set_server=utf8 はこの行です。元々そこになかったので、手動で追加する必要があります。
外部ロックをスキップ
#


上記のファイルを/etc/mysql/my.cnfにコピーします。

~$ sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf

データベースサービスを再起動します

~$ /etc/init.d/mysql restart

文字セットを確認した後に次の結果が得られれば成功です。

mysql> 'collat​​ion_%' のような変数を表示します。
+----------------------+-----------------+
| 変数名 | 値 |
+----------------------+-----------------+
| 照合接続 | utf8_general_ci |
| 照合データベース | utf8_general_ci |
| 照合サーバー | utf8_general_ci |
+----------------------+-----------------+
セット内の 3 行 (0.00 秒)

mysql> 'character_set_%' のような変数を表示します。
+--------------------------+----------------------------+
| 変数名 | 値 |
+--------------------------+----------------------------+
| 文字セットクライアント | utf8 |
| 文字セット接続 | utf8 |
| 文字セットデータベース | utf8 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | utf8 |
| 文字セットサーバー | utf8 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
セット内の行数は 8 行 (0.01 秒)

以下もご興味があるかもしれません:
  • Linux に Apache と PHP をインストールする; Apache+PHP+MySQL 構成戦略
  • LinuxでMySQLを正しく再起動する方法
  • Linux で mysql-5.6.4 をインストールするためのグラフィック チュートリアル
  • LinuxでのMySQLのインストールとログイン方法を説明します
  • Linux での「mysql デーモンの起動に失敗しました」というエラーの解決方法
  • Linux mysql エラー: MYSQL: サーバーは PID ファイルを更新せずに終了しました
  • LinuxでのMySQLのインストールと設定 MySQL設定パラメータの詳細な説明
  • Linux で SQL ファイルをインポートする方法 (コマンド ラインを使用して MySQL データベースを転送する)
  • Linux での MySQL のインストールと使用に関する詳細な紹介
  • MySQL 5.7.13 のインストールと設定方法のグラフィック チュートリアル (Linux)
  • Linux mysql5.6バージョンのインストールと設定のプロセス

<<:  Vue の関連ページへのマルチレベルジャンプ (ページドリルダウン) 機能の完全な例

>>:  Ubuntuでネットワークルーティングテーブルを表示する方法

推薦する

Linux で libudev を使用して USB デバイスの VID と PID を取得する方法

この記事では、libudev ライブラリを使用して hidraw デバイスにアクセスします。 lib...

MySQL のインデックスとデータ テーブルを管理する方法

目次テーブルの競合を見つけて修正するインデックス統計の更新テーブルの競合を見つけて修正するデータ テ...

美容・スタイリングウェブサイト向けのカラーマッチングテクニックと効果表示

色はあらゆるウェブサイトにとって最も重要な要素の 1 つであり、閲覧者に大きな影響を与えるため、色の...

CSS カウンターを使用して数字の順序付きリストを美しく表示する方法

Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...

js Promise同時制御メソッド

目次質問背景アイデアと実装質問次のように、同時実行 Promise の数を制御するメソッドを記述する...

vue3 タイムスタンプ変換 (フィルターを使用せずに)

vue2 では、タイムスタンプを変換するときに、通常はフィルターを使用します。vue3 以降では、...

Linux でファイルの作成時間を取得する方法と実践的なチュートリアル

背景ファイルの作成時刻を取得する必要がある場合があります。例えば: 「xtrabackup スキーマ...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

JavaScript で虫眼鏡の特殊効果を実現

達成される効果:マウスを小さな画像の上に置くと、小さなブロックが小さな画像の上に表示され、この小さな...

Linuxはシェルスクリプトを使用して履歴ログファイルを定期的に削除します

1. ツールディレクトリのファイル構造 [root@www tools]# ツリーツール/ ツール/...

css n番目から始まるすべての要素を取得する

具体的なコードは次のとおりです。 <div id="ボックス"> &...

MySQL解凍版のインストール手順の詳しい説明

1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...

CSSをインポートする方法は何ですか?linkと@importの違いは何ですか?選択方法

Taobao のウェブページはインポートを使用していますが、多くのウェブサイトはリンクを使用していま...

シェルスクリプト nginx 自動化スクリプト

このスクリプトは、nginxの起動、停止、再起動の操作を満たすことができます。 #!/bin/bas...