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でネットワークルーティングテーブルを表示する方法

推薦する

MySQLは1億のテストデータを素早く挿入します

目次1. テーブルを作成する1.1 テストテーブルt_userを作成する1.2 一時テーブルの作成2...

LinuxにMySQLデータベース5.6のソースコードをインストールし、ログインユーザーのパスワードを変更する

この記事では、主に Linux で MYSQL データベースをインストールする方法について説明し、M...

HTML 選択タグにおける単一選択と複数選択の詳細な説明

select 要素は、単一選択または複数選択のメニューを作成します。フォームが送信されると、ブラウザ...

Jenkins + Docker + ASP.NET Core の自動デプロイメントの問題について (落とし穴を避ける)

このブログを書くつもりはなかったのですが、実際の操作中に、ネットワークの問題に圧倒されたこと (ネッ...

https ウェブサイトを展開し、Nginx でアドレス書き換えを構成するための詳細な手順

Nginx は、高性能な Web サイト サーバーおよびリバース プロキシ サーバーであり、IMAP...

React+tsは二次リンク効果を実現します

この記事では、二次リンク効果を実現するためのReact+tsの具体的なコードを参考までに共有します。...

CSSとJSでロマンチックな流星群アニメーションを実現

1. レンダリング 2. ソースコードhtml < 本文 > < div クラス ...

共通要素のデフォルトのマージンとパディング値に関する議論

今日は、さまざまなブラウザでのデフォルト要素のマージン値が何であるかという問題について説明しました。...

webpackコード断片化の実装

目次背景コモンズチャンクプラグイン分割チャンク構成リソースを非同期に読み込む要約する背景高性能なアプ...

MySQL における一般的な高度な SQL ステートメント

MySQL 高度な SQL ステートメント kgc を使用します。 テーブルlocation(Reg...

VMware12 に CentOS8 をインストールする方法 (VM 仮想マシンに CentOS8 をインストールするチュートリアル)

数日前に CentOS8 がリリースされました。8 の最初のバージョンですが、今日は VM12 に ...

VMware ESXi 6.0 および仮想マシンのインストール チュートリアルの展開 (画像とテキスト)

社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...

vue.js を使用してドラッグ アンド ドロップ機能を実装する方法

序文ドラッグ アンド ドロップ機能を追加すると、プログラムがより自然でユーザーフレンドリーになります...