Linux-MySQL(5.7.32)をコンパイルしてインストールします

1.システム環境を確認します

[root@mysql ~]# uname  -r
3.10.0-957.el7.x86_64
[root@mysql ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

2.mariadbをアンインストールします

PS:centos7バージョンにはデフォルトでmariadbがインストールされているため、事前にアンインストールする必要があります。

[root@mysql ~]# rpm -qa | grep  mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@mysql ~]# rpm -e mariadb-libs --nodeps  mariadb-libs

3.依存関係をインストールします

依存ソフトウェアをインストールする

[root@mysql ~]# yum -y install openssl openssl-devel gcc gcc-c++  m4

cmake

PS:従来のconfigureコンパイル方法はMySQL 5.5以降廃止されているため、mysqlのコンパイルパラメータを設定するにはCMakeコンパイラが必要です。例:インストールディレクトリ、データストレージディレクトリ、文字エンコード、並べ替えルールなど。

[root@mysql ~]# wget http://www.cmake.org/files/v3.18/cmake-3.18.1.tar.gz 
[root@mysql ~]# tar zxf cmake-3.18.1.tar.gz 
[root@mysql ~]# cd cmake-3.18.1/
[root@mysql cmake-3.18.5]# ./bootstrap && gmake && gmake install
[root@mysql cmake-3.18.5]# cmake  -version
cmake version 3.18.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

ncurses

PS:文字端末処理ライブラリ

[root@mysql ~]# wget ftp://ftp.gnu.org/gnu/ncurses/ncurses-6.2.tar.gz
[root@mysql ~]# tar zxf ncurses-6.2.tar.gz 
[root@mysql ~]# cd ncurses-6.2/
[root@mysql ncurses-6.2]# ./configure  && make && make install

バイソン

PS:LinuxでのC / C ++構文アナライザー

[root@mysql ~]# wget http://ftp.gnu.org/gnu/bison/bison-3.6.3.tar.gz
[root@mysql ~]# tar zxf  bison-3.6.3.tar.gz 
[root@mysql ~]# cd bison-3.6.3/
[root@mysql bison-3.6.3]# ./configure  && make && make install

ブートストラップ

PS:MySQL 5.7.5以降、Boostライブラリが必要です。mysqlソースコードではC ++ Boostライブラリが使用されています。Boost1.59.0以降がインストールされている必要があります。GCCはLinuxでのC言語コンパイラツールです。mysqlソースコードは完全にCによってコンパイルされ、C ++で記述されているため、GCCをインストールする必要があります

[root@mysql ~]# wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
[root@mysql ~]# tar zxf boost_1_59_0.tar.gz 
[root@mysql ~]# mv boost_1_59_0 /usr/local/boost

4.ユーザーとグループおよびディレクトリを作成します

[root@mysql ~]# groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql  #新建 msyql 组和 msyql 用户禁止登录 shell
[root@mysql ~]# mkdir /usr/local/mysql   #创建目录
[root@mysql ~]# mkdir /usr/local/mysql/data  #创建数据库目录

5.MySQLをコンパイルしてインストールします

解凍してインストールします

[root@mysql ~]# wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.32.tar.gz
[root@mysql ~]# tar zxf mysql-5.7.32.tar.gz 
[root@mysql ~]# cd mysql-5.7.32/
[root@mysql mysql-5.7.32]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/usr/local/mysql/data  -DSYSCONFDIR=/etc    -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci   -DWITH-SYSTEMD=1   -DWITH_BOOST=/usr/local/boost && make -j 4 && make install
パラメータ 意味
-DCMAKE_INSTALL_PREFIX = / usr / local / mysql MySQLインストールのルートディレクトリ
-DMYSQL_DATADIR = / usr / local / mysql / data MySQLデータベースファイルストレージディレクトリ
-DSYSCONFDIR = / etc MySQL構成ファイルが配置されているディレクトリ
-DWITH_MYISAM_STORAGE_ENGINE = 1 MYISAMエンジンサポートを追加
-DWITH_INNOBASE_STORAGE_ENGINE = 1 InnoDBエンジンサポートを追加する
-DWITH_ARCHIVE_STORAGE_ENGINE = 1 ARCHIVEエンジンサポートを追加する
-DMYSQL_UNIX_ADDR = /tmp/mysql.sock mysql.sockの場所を指定します
-DWITH_PARTITION_STORAGE_ENGINE = 1 サポートデータベースパーティションをインストールします
-DEXTRA_CHARSETS = all MySQLがすべての拡張文字をサポートするようにする
-DDEFAULT_CHARSET = utf8 MySQLのデフォルトの文字セットをutf8に設定します
-DDEFAULT_COLLATION = utf8_general_ci デフォルトの文字セット照合規則を設定します
-DWITH-SYSTEMD = 1 systemdを使用してmysqlサービスを制御できます
-DWITH_BOOST = / usr / local / boost Boostライブラリが配置されているディレクトリをポイントします
make  -j  4 && make install
  • -j:CPUコアの数に応じてコンパイル中のスレッド数を指定します。これにより、コンパイルを高速化できます。デフォルトは1スレッドのコンパイルです。

最適化パス

[root@mysql ~]# tail -1 /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
[root@mysql ~]# source /etc/profile

6.構成ファイルを作成します

[root@mysql ~]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql    #创建目录
datadir=/usr/local/mysql/data    #数据库目录
pid-file=/usr/local/mysql/data/mysqld.pid   #mysql进程
log-error=/usr/local/mysql/data/mysql.err   #错误日志
socket=/tmp/mysql.sock  #可以socket文件方式登录mysql

7.権限を設定し、MySQLを初期化します

[root@mysql ~]# chown -R mysql:mysql /usr/local/mysql/
[root@mysql mysql-5.7.32]# ll /usr/local/mysql/
总用量 268
drwxr-xr-x  2 mysql mysql   4096 11月 19 22:07 bin
drwxr-xr-x  2 mysql mysql      6 11月 19 21:53 data
drwxr-xr-x  2 mysql mysql     55 11月 19 22:07 docs
drwxr-xr-x  3 mysql mysql   4096 11月 19 22:07 include
drwxr-xr-x  4 mysql mysql    192 11月 19 22:07 lib
-rw-r--r--  1 mysql mysql 247914 9月  23 20:00 LICENSE
drwxr-xr-x  4 mysql mysql     30 11月 19 22:07 man
drwxr-xr-x 10 mysql mysql   4096 11月 19 22:07 mysql-test
-rw-r--r--  1 mysql mysql    587 9月  23 20:00 README
-rw-r--r--  1 mysql mysql    587 9月  23 20:00 README-test
drwxr-xr-x 28 mysql mysql   4096 11月 19 22:07 share
drwxr-xr-x  2 mysql mysql     90 11月 19 22:07 support-files
drwxr-xr-x  3 mysql mysql     17 11月 19 22:07 usr
[root@mysql mysql-5.7.32]#  mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  • rootとして操作を初期化するときに、-user = mysqlパラメーターを追加して、ランダムなパスワードを生成します(ログインを保存するときに使用されることに注意してください)。
  • –initializeパラメーターを使用してシステムデータベースを初期化すると、rootユーザーの一時パスワードが生成されます。

8.MySQLを起動します

[root@mysql ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/
[root@mysql ~]# vim /usr/lib/systemd/system/mysqld.service 
......
ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd   #修改为自己设置的mysql路径

ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS   ##修改为自己设置的mysql路径
......
[root@mysql ~]# systemctl  daemon-reload 
[root@mysql ~]# systemctl  start  mysqld.service 
[root@mysql ~]# systemctl  enable  mysqld.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.

[root@mysql ~]# ss -lnt | grep  3306
LISTEN     0      80          :::3306                    :::*  

9.MySQLにログインします

[root@mysql ~]# cat /usr/local/mysql/data/mysql.err  | grep password
2020-11-19T14:09:35.532890Z 1 [Note] A temporary password is generated for root@localhost: fFqNp#ty>6/?
[root@mysql ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.32

Copyright (c) 2000, 2020, 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> alter  user  root@localhost  identified  by '123456';
Query OK, 0 rows affected (0.00 sec)

パスワードを変更する

[root@mysql ~]# mysqladmin  -u root -p password '123456'
Enter password: 123456
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

おすすめ

転載: blog.csdn.net/weixin_45191791/article/details/110136458