1. Ubuntuソースの変更Ubuntu 20.04 システムに付属するソースでは、MySQL 8.0 が直接インストールされます。MySQL 5.7 をインストールしたいので、まずはソースを変更します。 1.1 元のソースファイルをバックアップする sudo cp /etc/apt/sources.list /etc/apt/sources.list.old 1.2 ソースリストファイルを変更する sudo vim /etc/apt/sources.list 私は清華ミラーソースを選択しました。 source.list の内容をクリアし、ソースを選択して source.list に貼り付け、ファイルを保存して終了します。 # 清華ミラーソース deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial メイン制限付き宇宙マルチバース deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial メイン 制限付き宇宙 マルチバース deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates メイン 制限付き宇宙 マルチバース deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates メイン 制限付き宇宙 マルチバース deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports メイン 制限付き宇宙 マルチバース deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports メイン 制限付き宇宙 マルチバース deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security メイン 制限された宇宙 マルチバース deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security メイン 制限付き宇宙 マルチバース 1.3 ミラーソースとソフトウェアの更新 # ミラーソースを更新する sudo apt-get update # ソフトウェアを更新する sudo apt-get upgrade 2. MySQLをインストールする2.1 apt-get install を使用したインストール この方法ではサーバーがインターネットに接続されている必要があります # 次のインストールコマンドを実行します # mysql5.7 サーバーをインストールします sudo apt-get install mysql-server-5.7 # mysql5.7 クライアントをインストールします sudo apt-get install mysql-client-5.7 # C/C++ などの言語を使用して、mysql ダイナミック リンク ライブラリを操作します。必要ない場合はインストールできます。sudo apt install libmysqlclient-dev インストール中に、mysql ルート ユーザーのパスワードを 2 回入力する必要があります (このパスワードを覚えておく必要があります) インストールが完了したら、MySQLのバージョンとサービスを確認してください。 mysql -V # mysql バージョンを表示 netstat -tap | grep mysql # mysql サービスを表示 上の写真はインストールが成功したことを示しています。 2.2 debインストールパッケージを使用したインストール このインストール方法は、インターネット接続の有無にかかわらず使用できます。 以下のインストールに使用するパッケージは自分でダウンロードすることも、私がダウンロードしたものを使用することもできます。 リンク: https://pan.baidu.com/s/1lJq7hZH-X35f5gC-A-URiQ 抽出コード: gxfk 1) debインストールパッケージをダウンロードする インストールパッケージはサーバーから直接入手するか、公式ウェブサイトからダウンロードすることができます。 # サーバーから直接取得します (サーバーはインターネットに接続されている必要があります) https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar をダウンロードします。 # ブラウザに URL を直接貼り付けて、インストール圧縮パッケージをダウンロードすることもできます https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar 公式 Web サイトにアクセスして自分でダウンロードし、MySQL バージョンとオペレーティング システムのバージョンを選択して [ダウンロード] をクリックします。 URL: https://downloads.mysql.com/archives/community/ 2) debパッケージを使用してインストールする ダウンロードした # 新しいディレクトリを作成する mkdir mysql5.7.31 mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ./mysql5.7.31 # 解凍 cd mysql5.7.31 sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar # 解凍された deb インストール パッケージは次のとおりです。 libmysqlclient20_5.7.31-1ubuntu18.04_amd64.deb mysql-クライアント_5.7.31-1ubuntu18.04_amd64.deb mysql-コミュニティソース_5.7.31-1ubuntu18.04_amd64.deb mysql-server_5.7.31-1ubuntu18.04_amd64.deb mysql-common_5.7.31-1ubuntu18.04_amd64.deb mysql-テストスイート_5.7.31-1ubuntu18.04_amd64.deb libmysqlclient-dev_5.7.31-1ubuntu18.04_amd64.deb mysql-コミュニティクライアント_5.7.31-1ubuntu18.04_amd64.deb mysql-コミュニティサーバー_5.7.31-1ubuntu18.04_amd64.deb libmysqld-dev_5.7.31-1ubuntu18.04_amd64.deb mysql-コミュニティテスト_5.7.31-1ubuntu18.04_amd64.deb # テスト関連のパッケージ 2 つを削除します sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb dpkgでインストール # dpkg でインストール sudo dpkg -i mysql-*.deb 結果は間違っていました_^^ このエラーは # サーバーがインターネットに接続できる場合は、直接インストールします sudo apt-get install libtinfo5 sudo apt-get でlibmecab2をインストールします サーバーがインターネットに接続できない場合は、自分でダウンロードしてからサーバーにアップロードしてください ダウンロードURL: https://ubuntu.pkgs.org/ # ソフトウェア パッケージをダウンロードするには、ハードウェア アーキテクチャを区別する必要があります [admin0@Ubuntu20:/home/admin0]$ uname -m # ハードウェア アーキテクチャ x86_64 を表示します # x86_64 は AMD64 です バイナリ パッケージの URL をブラウザーにコピーしてダウンロードし、ダウンロードした sudo dpkg -i libtinfo5_6.2-0ubuntu2_amd64.deb sudo dpkg -i libmecab2_0.996-10build1_amd64.deb # dpkg cd mysql5.7.31 で再度インストールします sudo dpkg -i mysql-*.deb ルートパスワードを2回入力するよう求められたら、インストールは成功です インストールが完了したら、MySQLのバージョンとサービスを確認してください。 mysql -V # mysql バージョンを表示 netstat -tap | grep mysql # mysql サービスを表示 上の写真はインストールが成功したことを示しています。 3. 新しいユーザーを作成し、権限を付与する3.1 パスワードを設定していない場合、またはパスワードを忘れた場合はどうすればいいですか? # mysqlサービスを停止します sudo service mysql stop # MySQL のログイン設定を変更し、一時的にログインパスワードを検証しないようにする sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # [mysqld] の下の "skip-external-locking" をコメントアウトします。 # "skip-grant-tables" を追加し、保存して終了します。 例: ================================================ [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 #外部ロックをスキップ スキップ許可テーブル ================================================= # mysqlデータベースを再起動します。sudo service mysql restart # パスワードなしでmysqlデータベースにログインする mysql -u root mysql # ルートパスワードを変更します。 update mysql.user set authentication_string=password('111222333') where user='root'; # 権限を更新します。 # MySQL ログイン設定を復元します # [mysqld] の下に追加された "skip-grant-tables" を削除します # "skip-external-locking" のコメントを解除し、保存して終了します sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 例えば: ================================================ [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 外部ロックをスキップ ================================================= # mysqlデータベースを再起動します。sudo service mysql restart # 新しいパスワードを使用してmysqlにログインします mysql -u ユーザー名 -p パスワード データベース名# 例: mysql -uroot -p111222333 mysql 3.2 MySQLにログインして情報を表示する # mysqlに直接ログインする mysql -u ユーザー名 -p パスワード データベース名# 例: mysql -uroot -p111222333 mysql # 最初にログインし、パスワードを入力してデータベースを選択します。mysql -u root -p パスワードを入力してください: “rootユーザーパスワード” mysql> use mysql # 操作するデータベースを選択 # データベースを切り替え use database name; # すべてのデータベースを表示 show databases; # ログイン データベース内のすべてのテーブルを表示します。show tables; # データ テーブル構造を表示します。desc テーブル名; # ログインユーザー名を表示します。 select user(); # ログインデータベース名を表示します。select database(); # バージョンを確認する select version(); # 現在の時刻を表示する now() を選択します。 # すべてのユーザーのユーザー名、ログイン ホスト、認証プラグイン、およびパスワードを表示します。 select user,host,plugin,authentication_string from user; # 現在ログインしているユーザーの権限を表示します。show grants; # 任意のユーザーの権限を表示します(権限の具体的な意味については後で説明します) root@localhost の権限を表示します。 3.3 データベースとユーザーの作成と削除 # ルートユーザーを使用してデータベースにログインします mysql -uroot -p111222333 mysql # データベースの作成 create database "データベース名" charset="データベースのエンコーディング"; # 例えば: データベース pydb を作成します。charset=utf8; # データベース ユーザーを作成します。create user "ユーザー名"@"IP アドレス" identified by "パスワード"; # 例えば: 'test0'@'localhost' という、'test0111' で識別されるユーザーを作成します。 # データを削除します drop database [データベース名]; # 例えば: データベース pydb を削除します。 # データベースユーザーを削除します。drop user 'ユーザー名'@'IPアドレス'; # 例えば: ユーザー 'test0'@'localhost' を削除します。 3.4 ユーザーへの権限の付与 # ユーザー test0 の権限を表示します。test0@localhost に権限を許可します。 表示: [GRANT USAGE ON *.* TO 'test0'@'localhost'] 使用法: 権限のないユーザーを示します。 # pydbデータベースにユーザーtest0としてログインする mysql -utest0 -ptest0111 pydb エラー メッセージは、操作が許可されていないことを示しています: [ERROR 1044 (42000): ユーザー 'test0'@'localhost' によるデータベース 'pydb' へのアクセスが拒否されました] # ルート ユーザーを使用して、test0 ユーザーに権限を付与します。付与オプションを使用して、'データベース名'.'テーブル名' のすべての権限を、"パスワード" で識別される 'ユーザー名'@'IP アドレス' に付与します。 # たとえば、ローカル クライアントがこのユーザーにアクセスするように設定します。 mysql> 'test0'@'localhost' (識別名は 'test0111') に pydb.* のすべての権限を付与します (付与オプション付き)。 # 任意のリモート クライアントがこのユーザーにアクセスできるように設定します。 mysql> grant オプションを使用して、pydb.* のすべての権限を 'test0'@'%' に付与します。 # 権限を更新mysql> flush privileges; # ローカル権限を表示 show grants for 'test0'@'localhost'; 出力: [GRANT OPTION 付きで 'test0'@'localhost' に `pydb`.* のすべての権限を付与] # リモート権限の表示 show grants for 'test0'@'%'; 出力: [GRANT ALL PRIVILEGES ON `pydb`.* TO 'test0'@'%' WITH GRANT OPTION] 権限が正常に追加されました。これで、ローカル クライアントとリモート クライアントの両方に、test0 ユーザーにログインして pydb データベースの下にあるすべてのテーブルを操作する権限が与えられます。 # 認可コマンドの説明 grant: 認可キーワード all privileges: 認可タイプ。all privileges はすべての権限を意味します。選択、更新、作成、削除などの特定の権限を割り当てることもできます。 on: どのデータベースのどのテーブルに権限を付与するかを示します。 *.* はすべてのデータベースのすべてのテーブルを示します。 to: 権限を付与するユーザーを、「ユーザー名」@「ログイン IP またはドメイン名」の形式で示します。 localhost はローカル クライアントがこのユーザーにログインできることを意味し、% はどのホスト クライアントもこのユーザーにログインできることを意味します。'username'@'192.168.113' などの特定の IP アドレスが設定されている場合は、ホスト クライアント 192.168.113 のみがこのユーザーにログインできることを意味します。 'username'@'192.168.%'のようなIPセグメントを設定することもできます。 識別: このユーザーのログイン パスワードを設定するか、設定しないことも選択できます。 付与オプション付き: このユーザーが自分の権限を他のユーザーに付与できることを示します。 注: grant によって追加された権限は自動的に重ね合わされます。たとえば、最初に選択権限を追加し、次に挿入権限を追加すると、ユーザーには選択権限と挿入権限の両方が付与されます。ユーザーがすでにすべての権限を持っている場合に選択権限が追加されても、ユーザーには引き続きすべての権限が付与されます。 # 権限を削除します revoke insert on 'データベース名'.'テーブル名' from 'ユーザー名'@'IP アドレス'; # たとえば、挿入権限を削除するには: 'test0'@'localhost' からの pydb.* への挿入を取り消します。 # たとえば、すべての権限: pydb.* の 'test0'@'localhost' からすべてを取り消します。 # 権限を更新mysql> flush privileges; すべての権限には、[SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、REFERENCES、INDEX、ALTER、CREATE TEMPORARY TABLES、LOCK TABLES、EXECUTE、CREATE VIEW、SHOW VIEW、CREATE ROUTINE、ALTER ROUTINE、EVENT、TRIGGER] が含まれます。 実際の使用では、すべての権限を付与することは推奨されません。必要なものだけを付与してください。 権限の詳細については、MySQL の公式説明を参照してください: http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html 3.5 ユーザー、データベース、テーブルの関係図 4. データベースのバックアップとリカバリ# すべてのデータベースをバックアップします: mysqldump -uroot -p --すべてのデータベース > all.db # 指定されたデータベースをバックアップします: mysqldump -uroot -p pydb > test1.db # 指定されたデータベースのいくつかのテーブルをバックアップします。mysqldump -uroot -p pydb テーブル名 1 テーブル名 2 テーブル名 n > test2.db # 特定のテーブルを除いて指定されたデータベースをバックアップします(テーブル1と2を除く) mysqldump -uroot -p pydb --ignore-table=pydb.Table1 --ignore-table=pydb.Table2 > test3.db # テストデータベースを作成します。create database test charset=utf8; # バックアップデータを復元します。インポートしたデータベースが存在している必要があります。mysql -u root -p test < test1.db 5. Navicatリモート接続データベース5.1 ローカルリスニングアドレスを変更する # 監視の表示 netstat -an |grep 3306 # 現在のリスニングアドレスはローカルループバックアドレスです: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN # リモートクライアントはアクセスできません # MySQLのローカルリスニングアドレスを変更します sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf bind-address の値を bind-address = 0.0.0.0 に変更し、ファイルを保存して終了します。 ローカル IP アドレスに変更することもできます。例: bind-address = 192.168.111.10 # mysqlデータベースを再起動します。sudo service mysql restart # リモートクライアントマシンでネットワークをテストします。telnet が成功した場合、ネットワークは正常であることを意味します。telnet 192.168.111.10 3306 # 注意: Alibaba Cloud Server にはポート制限があります。ポート 3306 を開くにはポート アクセス ルールを設定する必要があります。URL: [https://homenew.console.aliyun.com/](https://homenew.console.aliyun.com/) 5.2 Navicatリモート接続 Navicat をダウンロードして自分でインストールしてください。 接続に失敗した場合は、次のテストを実行してください。 [192.168.111.10]はMySQLサーバのIPアドレスです。1.ネットワークとポートをテストします。telnet 192.168.111.10 3306 2. サーバーのリスニングアドレスを確認する sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf バインドアドレス = 0.0.0.0 3. ユーザーにリモート アクセス権があるかどうかを確認し、パスワード検証プラグインでユーザー、ホスト、ユーザーからプラグインを選択します。 ログインユーザーホストの値: % またはリモートクライアントIP ログインユーザープラグインの値: mysql_native_password MySQL 5.7のパスワード検証プラグインはmysql_native_passwordです。 # ユーザー アクセス権を追加し、パスワード検証プラグインを設定して、pydb.* のすべての権限を 'test0'@'%' に付与します ('test0111' によって mysql_native_password で識別されます)。 # ユーザーのリモート アクセス許可が存在し、パスワード検証プラグインが正しくない場合は、パスワード検証プラグインを変更することしかできません。 alter user 'test0'@'%' identified with mysql_native_password by '111222333'; # 権限を更新mysql> flush privileges; 6. mysqlをアンインストールする# mysqlをアンインストールします: 1.sudo apt-get autoremove mysql* --purge 2.sudo apt-getでmysql-serverを削除します 3.sudo apt-getでmysql-commonを削除します # 残留データをクリーンアップ sudo dpkg -l |grep mysql|awk '{print $2}' |sudo xargs dpkg -P sudo rm -rf /etc/mysql/ sudo rm -rf /var/lib/mysql # 削除が完了したかどうかを確認します whereis mysql sudo 検索 / -name mysql このブログ記事に記載されている操作はすべて自分で行いました。困っている友人の助けになれば光栄です。間違いがあれば、遠慮なく訂正してください。 Ubuntu 20.04 への MySql5.7 のインストールと構成に関するこの記事はこれで終わりです。Ubuntu 20.04 への MySql5.7 のインストールの詳細については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: js 正規表現の先読みと後読み、および非キャプチャグループ化
はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...
目次Vue でのモデルバインド表示の if の v-text の説明v-html: v-オンv-if...
目次序文面接官は適切な質問をしていますか? § React は setState をどのように制御し...
目次1. プロジェクト環境2. プロジェクトの説明3. プロジェクトの手順1. インストール2. 構...
Alibaba Cloud ServerがFTPに接続できないFileZilla 425 データ接続...
目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...
1. はじめに以前、「MySQL マスター スレーブ同期の原理」という記事を書きました。この記事を読...
Dockerエラー1. 原因を確認するdocker ログ ネクサス2. エラーの原因OpenJDK ...
組織内で何らかのパスワード ポリシーがすでに実装されている場合は、この記事を読む必要はありません。た...
この例では、デバッグ用の MySQL データベースをダウンロードしてインストールする必要があります。...
まず、CSS3 Api の position 属性の定義を見てみましょう。 static: 特別な配...
Neo4j (Nosql の 1 つ) は、高性能なグラフ データベース (分散をサポートしていませ...
目次1. 遅いクエリSQLを見つけて最適化する方法a. スローログに基づいてスロークエリSQLを見つ...
最近、Ant Design Blazor コンポーネント ライブラリにマルチタブ コンポーネントを実...
目次序文:成し遂げる:要約:まず効果を見てみましょう: 序文:このアイデアは、Bilibili のア...