1.前提条件
何度かインストールしたので、エラーの報告をやめます。ちょっとしたブレインストーミングです。 ! !関連する依存関係とエラーをその場で事前に解決します。
1、 必要なソースコードパッケージ
mysql-8.0.19.tar.gz
boost_1_70_0.tar.gz //mysqlをインストールします-8必要なブーストバージョン
rpcsvc-proto-1.4.tar.gz //後続のエラーに必要なソースコードパッケージ
mysql-8.0.19ダウンロードアドレス:http://mirrors.sohu.com/mysql/
boost_1_70_0ダウンロードアドレス:https://dl.bintray.com/boostorg/release/1.70.0/source/
rpcsvc-proto-1.4ダウンロードアドレス:https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/
2、 依存関係を解決する
[14:41:21 root@wangzhike ~]#yum install -y cmake ncurses-devel
3、 ストレージの場所
ソフトウェアソースコードパッケージの保存場所:/ usr / local / src
ソースコードパッケージのコンパイルとインストール場所:/ usr / local / software name
**2つ目は、mysql-8.0.19 **をコンパイルしてインストールすることです。
1、 ソースコードパッケージをアップロード
boost_1_70_0.tar.gz
mysql-8.0.19.tar.gz
rpcsvc-proto-1.4.tar.gz
2、 rpcsvc-proto-1.4を解きます
1 )、解凍
[17:05:14 root@wangzhike software]#tar -zxf rpcsvc-proto-1.4.tar.gz -C /usr/local/src/
2 )、ワンステップインストール
[17:09:48 root@wangzhike rpcsvc-proto-1.4]#./configure && make && make install
3、 boost_1_70_0を解きます
[17:13:48 root@wangzhike~]# mkdir -p /usr/local/boost
[17:14:05 root@wangzhike~]# cd /usr/local/src
[17:15:02 root@wangzhike src]#cp /software/boost_1_70_0.tar.gz /usr/local/boost/[17:26:22 root@wangzhike boost]#tar xf boost_1_70_0.tar.gz
////にのみアップロード/usr/local/src/ディレクトリを保存し、現在のブーストディレクトリに解凍します
4、 [mysql](https://cloud.tencent.com/product/cdb?from=10680)ユーザーとグループを作成します
[17:27:46 root@wangzhike ~]#groupadd mysql
[17:28:10 root@wangzhike ~]#useradd -g mysql mysql -s /bin/false
#### ユーザーmysqlを作成し、mysqlグループに参加します。mysqlユーザーがシステムに直接ログインすることを許可しないでください
[17:28:11 root@wangzhike ~]#mkdir -p /data/mysql
#### MySQLデータベースストレージディレクトリを作成します
[17:29:13 root@wangzhike ~]#chown -R mysql:mysql /data/mysql
#### MySQLデータベースストレージディレクトリのアクセス許可を設定する
[17:29:31 root@wangzhike ~]#mkdir -p /usr/local/mysql
#### MySQLインストールディレクトリを作成します
5、 mysql-8.0.19をインストールします
1 )、解凍
[17:43:24 root@wangzhike software]#tar -zxf mysql-8.0.19.tar.gz -C /usr/local/src/[17:43:47 root@wangzhike software]#cd /usr/local/src/[17:43:53 root@wangzhike src]#cd mysql-8.0.19/
2 )、インストール
[17:47:01 root@wangzhike mysql-8.0.19]#cmake . \
- DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
- DINSTALL_DATADIR=/data/mysql -DMYSQL_USER=mysql \
- DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 \
- DDEFAULT_COLLATION=utf8_general_ci \
- DWITH_INNOBASE_STORAGE_ENGINE=1 \
- DWITH_EMBEDDED_SERVER=1 \
- DFORCE_INSOURCE_BUILD=1 \
- DWITH_MYISAM_STORAGE_ENGINE=1 \
- DENABLED_LOCAL_INFILE=1 \
- DEXTRA_CHARSETS=all \
- DWITH_BOOST=/usr/local/boost
以下に問題はありません
CMake Warning: Manually-specified variables were not used by the
project:
EXTRA_CHARSETS INSTALL_DATADIR MYSQL_USER WITH_EMBEDDED_SERVER– Build files have been written to: /usr/local/src/mysql-8.0.19
rpc.hに関する次のエラーが表示された場合
Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
解決:
[17:45:47 root@wangzhike mysql-8.0.19]#find /-name rpc.h
/usr/local/src/mysql-8.0.19/extra/libevent/include/event2/rpc.h
/usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc/rpc.h
そして、/ usr / local / src / mysql-8.0.19 / plugin / group_replication / libmysqlgcs / src / bindings / xcom / xcom / windeps / sunrpc /の下のrpc / rpc.hを/ usr / include /にコピーします。
次のように
[17:52:57 root@wangzhike mysql-8.0.19]#cp -a /usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc /usr/include/
3 )、make && install
[17:55:20 root@wangzhike mysql-8.0.19]#make -j 3 && install
//プロセスが長すぎてメモリが不足している場合、エラーが報告されます
待って待って待って
次のエラーが報告された場合は、メモリが不足しており、パーティションを作成する必要があることを意味します
+: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]:***[sql/CMakeFiles/sql_gis.dir/build.make:154: sql/CMakeFiles/sql_gis.dir/gis/distance_functor.cc.o] Error 1
make[2]:*** Waiting for unfinished jobs....
make[1]:***[CMakeFiles/Makefile2:11144: sql/CMakeFiles/sql_gis.dir/all] Error 2
make:***[Makefile:163: all] Error 2
パーティションを作成します。
[19:58:37 root@wangzhike mysql-8.0.19]#dd if=/dev/zero of=/swapfile bs=1k count=20480002048000+0 records in2048000+0 records out
2097152000 bytes(2.1 GB,2.0 GiB) copied,6.07651 s,345 MB/s
#### 追加する2GのSWAPファイルブロックを取得します
[20:10:02 root@wangzhike mysql-8.0.19]#mkswap /swapfile
mkswap:/swapfile: insecure permissions 0644,0600 suggested.
Setting up swapspace version 1, size =2GiB(2097147904 bytes)
no label, UUID=18a4bbb3-75d1-411b-ac0c-c87c63547509
#### SWAPファイルを作成する
[20:10:07 root@wangzhike mysql-8.0.19]#swapon /swapfile
swapon:/swapfile: insecure permissions 0644,0600 suggested.
#### SWAPファイルをアクティブ化する
[20:10:12 root@wangzhike mysql-8.0.19]#swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 2144252137300-2/swapfile file 20479960-3
##### SWAP情報が正しいかどうかを確認します
[20:10:19 root@wangzhike mysql-8.0.19]#echo "/var/swapfile swap swap defaults 0 0">>/etc/fstab
#### fstabファイルに追加して、起動時にシステムを自動的に起動します
make -j 3 && make installを再実行した後、次の画面が表示されてもエラーは発生しません。
``` bash
- - Installing:/usr/local/mysql/man/man1/comp_err.1-- Installing:/usr/local/mysql/man/man1/ibd2sdi.1-- Installing:/usr/local/mysql/man/man1/innochecksum.1-- Installing:/usr/local/mysql/man/man1/lz4_decompress.1-- Installing:/usr/local/mysql/man/man1/my_print_defaults.1-- Installing:/usr/local/mysql/man/man1/myisam_ftdump.1-- Installing:/usr/local/mysql/man/man1/myisamchk.1-- Installing:/usr/local/mysql/man/man1/myisamlog.1-- Installing:/usr/local/mysql/man/man1/myisampack.1-- Installing:/usr/local/mysql/man/man1/mysql.1-- Installing:/usr/local/mysql/man/man1/mysql.server.1-- Installing:/usr/local/mysql/man/man1/mysql_config.1-- Installing:/usr/local/mysql/man/man1/mysql_config_editor.1-- Installing:/usr/local/mysql/man/man1/mysql_secure_installation.1-- Installing:/usr/local/mysql/man/man1/mysql_ssl_rsa_setup.1-- Installing:/usr/local/mysql/man/man1/mysql_tzinfo_to_sql.1-- Installing:/usr/local/mysql/man/man1/mysql_upgrade.1-- Installing:/usr/local/mysql/man/man1/mysqladmin.1-- Installing:/usr/local/mysql/man/man1/mysqlbinlog.1-- Installing:/usr/local/mysql/man/man1/mysqlcheck.1-- Installing:/usr/local/mysql/man/man1/mysqld_multi.1-- Installing:/usr/local/mysql/man/man1/mysqld_safe.1-- Installing:/usr/local/mysql/man/man1/mysqldump.1-- Installing:/usr/local/mysql/man/man1/mysqldumpslow.1-- Installing:/usr/local/mysql/man/man1/mysqlimport.1-- Installing:/usr/local/mysql/man/man1/mysqlman.1-- Installing:/usr/local/mysql/man/man1/mysqlpump.1-- Installing:/usr/local/mysql/man/man1/mysqlshow.1-- Installing:/usr/local/mysql/man/man1/mysqlslap.1-- Installing:/usr/local/mysql/man/man1/perror.1-- Installing:/usr/local/mysql/man/man1/zlib_decompress.1-- Installing:/usr/local/mysql/man/man8/mysqld.8-- Installing:/usr/local/mysql/man/man1/mysqlrouter.1-- Installing:/usr/local/mysql/man/man1/mysqlrouter_passwd.1-- Installing:/usr/local/mysql/man/man1/mysqlrouter_plugin_info.1
3、mysqlデータベースを初期化します
1、 mysqlディレクトリのアクセス許可を変更する
[20:37:59 root@wangzhike mysql-8.0.19]#chown -R mysql:mysql /usr/local/mysql
[20:42:07 root@wangzhike mysql-8.0.19]#chmod -R 755/usr/local/mysql
2、 mysqlを初期化します
[20:45:07 root@wangzhike ~]#cd /usr/local/mysql/[20:46:43 root@wangzhike mysql]#./bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --character-set-server=utf8
2020- 04- 14 T12:47:13.718724Z 0[System][MY-013169][Server]/usr/local/mysql/bin/mysqld(mysqld 8.0.19) initializing of server in progress as process 98932020-04-14T12:47:13.719367Z 0[Warning][MY-013242][Server]--character-set-server:'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.2020-04-14T12:47:14.855541Z 5[Note][MY-010454][Server] A temporary password is generated for root@localhost: rUG-.8kdw<1f
#### mysqlシステムデータベースを生成します。
3、 構成ファイルを変更する
mysql 8.0.xデフォルトでは構成ファイルはありません。自分で作成します。
[20:49:41 root@wangzhike mysql]#vi /usr/local/mysql/my.cnf
次のコンテンツを追加します。
[ client]
port=3306
socket=/tmp/mysql.sock
[ mysqld]
port=3306
user = mysql
socket=/tmp/mysql.sock
tmpdir =/tmp
key_buffer_size=16M
max_allowed_packet=128M
default_authentication_plugin=mysql_native_password
open_files_limit =60000
explicit_defaults_for_timestamp
server-id =1
character-set-server = utf8
federated
max_connections =1000
max_connect_errors =100000
interactive_timeout =86400
wait_timeout =86400
sync_binlog=0
back_log=100default-storage-engine = InnoDB
log_slave_updates =1[mysqldump]
quick
[ client]
password="123456"[mysqld-8.0]
sql_mode=TRADITIONAL
[ mysqladmin]
force
[ mysqld]
key_buffer_size=16M
service mysqld restart
:Wq!保存して終了
センテンスサービスmysqldrestartを記述する必要があることに注意してください。デフォルトのパスワードは123456です。
その他の操作
[20:53:05 root@wangzhike mysql]#ln -s /usr/local/mysql/my.cnf /etc/my.cnf
# / etcディレクトリにソフトリンクが追加されました
[20:53:12 root@wangzhike mysql]#cd
[20:53:13 root@wangzhike ~]#cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# Mysqlをシステムに追加して開始します
[20:53:21 root@wangzhike ~]#chmod 755/etc/init.d/mysqld
# 実行権限を増やす
[20:53:28 root@wangzhike ~]#chkconfig mysqld on
# ブートを追加
4、 ファイルの編集
[20:53:39 root@wangzhike ~]#vi /etc/rc.d/init.d/mysqld
#### basedir =を見つけて、/ usr / local / mysqlに変更します
#### datadir =を見つけて、/ data / mysqlに変更します
basedir = / usr / local / mysql#MySQLプログラムのインストールパス
datadir = / data / mysql#MySQlデータベースストレージディレクトリ
5、 正常に起動します
[20:54:32 root@wangzhike ~]#service mysqld start
MySQL.Loggingを「/data/mysql/wangzhike.err」に開始しています。成功!#正常に開始
6、 変数を追加
[20:54:44 root@wangzhike ~]#vi /etc/profile
最後の行にexportPATH = $ PATH:/ usr / local / mysql / binを追加します
[20:55:37 root @ wangzhike〜] #source / etc / profile#設定をすぐに有効にする
7、 ソフト接続を追加
[20:55:44 root@wangzhike ~]#ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
[20:55:57 root@wangzhike ~]#ln -s /usr/local/mysql/include/mysql /usr/include/mysql
#### 上記は、myslqライブラリファイルをシステムのデフォルトの場所にリンクするためのものです
[20:56:02 root@wangzhike ~]#mkdir /var/lib/mysql
[20:56:14 root@wangzhike ~]#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
8、 mysqlを起動します
[21:40:14 root@wangzhike ~]#mysql -uroot -p123456
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 9
Server version:8.0.19 Source distribution
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>
これは、ログインが成功したことを意味します。
Recommended Posts