概要###
前回の記事では、Windows システムでの MySQL 5.7 のインストールと構成について説明しましたが、ビッグ データ環境のインストールと展開が必要なため、今回は CentOS 7 システムに MySQL 5.7 をインストールして構成する必要があります。 CentOS 7 環境のインストールや設定も記録されているので、ここで直接インストールと設定を行います。
yum ソースから MySQL 5.7 をインストールします
MySQL 5.7
をインストールする
CentOS 7 システムでは、システムのデフォルトのソース ファイルに MySQL が含まれていないため、yum ソースを直接使用してインストール コマンドを実行すると、「利用可能なパッケージ mysql-community-server がありません。」というメッセージが表示されます。
したがって、次のコマンドを手動で実行してソース ファイル インストール ファイルをダウンロードする必要があります:
1 # cd /home 2 # wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
次に、ソース ファイル インストール コマンド:
1 # rpm -ivh mysql57-community-release-el7-11.noarch.rpm
これで MySQL をインストールできるようになりました。次のコマンドを実行します:
1 # yum install -y mysql-community-server
次のコマンドを実行し、データベースを起動してデータベースのステータスを確認します: #
1 # systemctl start mysqld 2 # systemctl status mysqld
このバージョンの設定データベースは /var/log/mysqld にインストールされます .log ファイルにランダムな root ユーザー パスワードを生成します ファイルを表示してパスワードを取得します:
1 # cat /var/log/mysqld.log
1 # grep 'temporary password' /var/log/mysqld.log
1 # mysql -uroot -p
#
1 > SET PASSWORD = PASSWORD('Password@123!');
1 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Password@123!' WITH GRANT OPTION;
次に、「quit」と入力し、Enter キーを押してデータベース ログインを終了し、データベース構成ファイルを開くためのコマンド:
1 # vim /etc/my.cnf
データベース文字セットを utf8mb4 に設定し、group by ステートメントをサポートするように sql_mode を設定します。完全な構成ファイルの内容は次のとおりです。次のように:
1 [mysqld] 2 datadir=/var/lib/mysql 3 socket=/var/lib/mysql/mysql.sock 4 symbolic-links=0 5 log-error=/var/log/mysqld.log 6 pid-file=/var/run/mysqld/mysqld.pid 7 character-set-server = utf8mb4 8 collation-server = utf8mb4_unicode_ci 9 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 10 11 [mysql] 12 default-character-set = utf8mb4 13 14 [client] 15 default-character-set = utf8mb4 16
知らせ:###
ここでは utf8mb4 に設定されています。 まず、utf8 エンコードは 3 バイト データのみをサポートし、モバイル端末上の絵文字データは 4 バイト文字であるため、utf-8 エンコードされたデータベースに顔文字データを直接挿入すると例外が報告されます。次に、MySQL の utf8 は実際の utf8 ではないため、utf8mb4 が使用されると述べたマスターの記事を読みました。
構成が完了したら、次のコマンドを実行してデータベース サービスを再起動します。
1 # systemctl restart mysqld
1 # SHOW VARIABLES LIKE 'character%';
1 # systemctl enable mysqld
まず、公式 Web サイト: https://www.mysql.com/ にアクセスして、関連するインストール パッケージをダウンロードします:
サーバー上の /usr ディレクトリにリモート接続して、mysql57 を作成します。
1 # cd /usr 2 # mkdir mysql57
Xftp を使用して、圧縮パッケージをサーバー上の mysql57 ディレクトリにアップロードします。
mariadb は CentOS 7 システムにデフォルトでインストールされているため、次を使用します。次のコマンドを使用して、mariadb を表示およびアンインストールします。
1 # rpm -qa | grep mariadb 2 # rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
1 # rpm -ivh *.rpm
1 # systemctl start mysqld 2 # systemctl status mysqld
MySQL 5.7 データベースのインストールが完了しました。
MySQL 5.7 の構成ログ ファイルを表示してパスワードを取得します:
1 # grep 'temporary password' /var/log/mysqld.log
使用如下命令登录MySQL数据库:
1 # mysql -uroot -p
密码输入刚才查到的密码,即可登录数据库:
使用如下命令,修改root用户密码:
1 > SET PASSWORD = PASSWORD('******');
数据库默认远程访问未开放,使用如下命令进行配置:
1 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
星号为root用户的密码(下图红色覆盖区域):
然后输入quit,回车退出数据库登录,使用命令打开数据库的配置文件:
1 # vim /etc/my.cnf
设置数据库字符集为utf8mb4,并设置sql_mode支持group by语句,完整的配置文件内容如下:
1 [mysqld] 2 character-set-server = utf8mb4 3 collation-server = utf8mb4_unicode_ci 4 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 5 6 [mysql] 7 default-character-set = utf8mb4 8 9 [client] 10 default-character-set = utf8mb4 11
注意:
此处设置为utf8mb4:一是因为utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符,所以直接往utf-8编码的数据库中插入表情数据,会报异常;二是看过一位大神的文章提到,MySQL中的utf8并不是真正的utf8,所以使用utf8mb4。
配置完成后,执行如下命令重启数据库服务:
1 # systemctl restart mysqld
使用修改后的密码,登录数据库,执行如下命令查看字符集设置:
1 # SHOW VARIABLES LIKE 'character%';
执行如下命令,设置数据库服务开机启动:
1 # systemctl enable mysqld
为了方便查看不同安装方式的朋友,将记录了两种不同的安装方式的配置都记录下来,避免他们需要回头去查找配置信息。
以上がCentOS 7 に MySQL 5.7 をインストールして構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。