sql >> データベース >  >> RDS >> Mysql

BinaryTarballからMySQL8をセットアップする

    この記事では、バイナリtarballMySQLのインストールについて説明します。バイナリtarballを使用したMySQL8のインストールについて説明し、バイナリtarballを使用してCentOS7にMySQL8をインストールします。バイナリtarballベースのインストールには、独自の長所と短所があります。これについて説明します。バイナリtarballからのインストールは、Linuxディストリビューションまたはディストリビューションが使用するinitシステムとは無関係です。これは、同じインストール方法が、たとえばRPMおよびデッドベースのシステムで機能することを意味しますが、Gen2などのよりエキゾチックなディストリビューションでも機能します。 macOS用のバイナリtarballも利用可能であり、インストール手順もそれほど変わりません。この方法には、より手動の単語が必要です。 mysql_install_dbスクリプトはMySQL5.7で非推奨になり、MySQL 8から削除されました。最初のデータベース作成は、mysqld –initializeコマンドを使用して実行できます。 MySQLを手動でインストールするので、mysqld –initializeコマンドを使用して空のデータベースを作成します。

    まず、クリーンアップを行いましょう。競合するmy.cnfを提供する非常に古いバージョンのmariadb-libsを削除します。

    Mariadbライブラリを削除します:

    [[email protected] ~]# sudo yum remove -y mariadb-libs

    MySQLコミュニティ調査8.0のソースtarballをダウンロード

    [[email protected] ~]# curl -L -O https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
    100 575M 100 575M 0 0 7726k 0 0:01:16 0:01:16 --:--:-- 8516k
    [[email protected] ~]# ll
    -rw-r--r--. 1 root root 603019898 Jul 23 10:31 mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

    tarballはダウンロードされないので、usr/localに解凍しましょう

    [[email protected] ~]# sudo tar xvfz mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

    前提条件の完了

    libaioをインストールしましょう。

    [[email protected] ~]# sudo yum -y install libaio
    Create a MySQL group, this is normally done by the packages but because we are installing it manually from binary tarball now we need to do it.
    [[email protected] ~]# sudo groupadd mysql

    MySQLユーザーを作成しましょう

    [[email protected] ~]# sudo useradd -r -g mysql -s /bin/false mysql

    mysqlユーザーがそこにいることを確認します

    [[email protected] ~]# getent passwd | grep mysql
    mysql:x:988:1001::/home/mysql:/bin/false

    / usr / localを取得し、シンボリックリンクを作成して確認します

    [[email protected] ~]# cd /usr/local
    [[email protected] local]# sudo ln -s mysql-8.0.11-linux-glibc2.12-x86_64 mysql
    [[email protected] local]# ls -la mysql
    lrwxrwxrwx. 1 root root 35 Jul 23 15:08 mysql -> mysql-8.0.11-linux-glibc2.12-x86_64

    / usr / local /

    にある間、データセットの所有権と権限を保持するMySQLファイルディレクトリを作成します
    [[email protected] local]# sudo mkdir mysql-files
    [[email protected] local]# sudo chown mysql:mysql mysql-files
    [[email protected] local]# sudo chmod 750 mysql-files

    MySQLを初期化する

    mysqlディレクトリに移動してmysqldを初期化します。以前のバージョンでは、これはmysql_installed_dbと呼ばれていました

    [[email protected] local]# cd mysql
    [[email protected] mysql]# sudo ./bin/mysqld --initialize --user=mysql
    2020-07-23T12:12:10.028247Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 25014
    2020-07-23T12:12:15.470538Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: Hqn+jK6lfzNS
    2020-07-23T12:12:18.875370Z 0 [System] [MY-013170] [Server] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) initializing of server has completed

    一時的なルートパスワードが生成されることに注意してください。私の場合は([email protected]:Hqn + jK6lfzNS)

    initスクリプトをsupport-filesから/etc/init.d

    にコピーします
    [[email protected] mysql]# sudo cp ./support-files/mysql.server /etc/init.d/

    コピーしたinitファイルでmysqlサーバーを起動します

    [[email protected] mysql]# sudo /etc/init.d/mysql.server start
    Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
    . SUCCESS!

    ここで、以前に生成された一時的なパスワードを提供して、romysqlに接続します

    [[email protected] mysql]# ./bin/mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 8
    Server version: 8.0.11
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql>

    rootユーザーの一時的なパスワードを変更しましょう。

    mysql> alter user 'root'@'localhost' identified by 'My_root_pass1!';
    Query OK, 0 rows affected (0.07 sec)

    ソケットファイルの場所を確認してください:

    mysql> show variables like 'socket';
    +---------------+-----------------+
    | Variable_name | Value |
    +---------------+-----------------+
    | socket | /tmp/mysql.sock |
    +---------------+-----------------+
    1 row in set (0.01 sec)

    MySQLを使用しているときにクライアントプログラムのパス名を常に入力する必要がないように、PATH変数に/ usr / local / mysql/binディレクトリを追加できます。

    [[email protected] mysql]# export PATH=$PATH:/usr/local/mysql/bin
    [[email protected] mysql]# ps -ef | grep mysql
    root 25130 1 0 15:16 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
    mysql 25215 25130 1 15:16 pts/1 00:00:42 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.localdomain.err --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
    root 26171 21375 0 16:21 pts/1 00:00:00 mysql -uroot -px xxxxxxxxxxxx
    root 26191 25365 0 16:23 pts/2 00:00:00 grep --color=auto mysq

    1. データベースはMySQLとPythonで自動的に更新されません

    2. リレーショナルと非リレーショナルデータベース - パート1

    3. データベースのトランザクションログがいっぱいです

    4. SQLSTATE[HY000][2002]接続に失敗しました。-ローカルサーバーからリモートサーバーに接続しようとしたとき