公式サイトは遅すぎます。清華ミラーステーションからダウンロードしてください:[https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/](https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/)
バイナリバージョンは、公式のプリコンパイル済みバージョンです
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.11-el7-x86_64.tar.gz
useradd mysql
目次:
tar xvfz mysql-8.0.11-el7-x86_64.tar.gz
cd mysql-8.0.11-el7-x86_64
ln -s $PWD /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
export PATH=$PATH:/usr/local/mysql/bin
mkdir -p /var/log/mariadb
chown -R mysql:mysql /var/log/mariadb
mkdir -p /var/run/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/run/mariadb
データベース:
mysqld --initialize --user=mysql
vi /etc/my.cnf
/etc/my.cnfで構成されたdatadirが初期化中のものと同じであるかどうかを確認します。
[ mysqld]
datadir=/var/lib/mysql
[ client]
socket=/var/lib/mysql/mysql.sock
デフォルトのdatadirをinitディレクトリに変更する必要があります。
デフォルトのクライアントは/var/lib/mysql.sockであるため、次のようにのみログインできます。
mysql -uroot -p --socket=/var/lib/mysql/mysql.sock
したがって、アプリケーションがアクセスする前に、カスタムソックスを使用するようにデフォルトのクライアントアクセスを変更する必要があります。
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
エラーが報告された場合は、/ etc /my.cnfで構成されたdatadirが初期化中のものと同じであるかどうかを確認してください。
mysql_secure_installation
必要がない場合は、コンパイルとインストールの方法を考慮しないでください。コンパイルは非常に遅く、依存関係の競合が発生すると、解決するのが非常に面倒になります。
何が必要ですか?
あなたはそれを理解しましたか?それから始まります。 。 。 。 (3時間準備)
yum install libaio -y
yum install glibc-devel.i686 glibc-devel -y
yum install gcc gcc-c++ cmake boost-devel openssl-devel ncurses-devel -y
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.11.tar.gz
tar xvfz mysql-8.0.11.tar.gz
cd mysql-8.0.11
cmake . \
- DDOWNLOAD_BOOST=1-DWITH_BOOST=/usr/include/boost \
- DCMAKE_INSTALL_PREFIX=/usr/local/mysql
# 次のプロセスは非常に遅いです
make && make install
フォローアップの手順はバイナリに似ていますが、一部のリンクにいくつかの問題があります。
useradd mysql
目次:
chown -R mysql:mysql /usr/local/mysql
mkdir -p /var/log/mariadb
chown -R mysql:mysql /var/log/mariadb
export PATH=$PATH:/usr/local/mysql/bin
mkdir -p /var/run/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/run/mariadb
データベース:
mysqld --initialize --user=mysql
この問題はバイナリバージョンでは発生しませんでした。分析後、次の公式Webサイト構成に従って構成ファイルを変更します。
[ mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html
再初期化するだけです。
テスト後、次のように変更できます。
character-set-server = utf8
collation-server = utf8_general_ci
これは実際の状況に近いですが、なぜこのいわゆるmysql8新機能文字セット「utf8mb4_0900_ai_ci」がエラーを報告するのですか?
utf8mb4_0900_ai_ci
に対応する文字セットは utf8
ではなく utf8mb4
であると推測されるため、 -DDEFAULT_CHARSET = utf8
パラメータを使用した最初のコンパイルは、照合文字セットとして utf8mb4_0900_ai_ci
を使用するmysql8defaultと競合します。
-DDEFAULT_CHARSET = utf8
。これが原因でした。したがって、デフォルトの文字セットを utf8mb4
に変更して、適応性を持たせます。
- DDEFAULT_CHARSET=utf8mb4 \
関連する文字セットと一致するように、これら2つの文字セットを完全に構成します。
- DDEFAULT_CHARSET=utf8 \
- DDEFAULT_COLLATION=utf8_general_ci \
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
mysql_secure_installation
まず、理由または手がかりを見つけ、必要な依存関係をインストールするか、必要な環境を変更します。
シーンをクリーンアップします。
make clean
rm -f CMakeCache.txt
再開しました。
mysql 8の権限管理方法が変更されました。以前の方法は、あまり役に立たない可能性があります。
mysql> create role app_read;
Query OK,0 rows affected(0.03 sec)
mysql> grant all on *.* to app_read;
Query OK,0 rows affected(0.07 sec)
mysql> create user root@'%' identified by 'dCa0tyVgN1&o';
mysql8とは何かを知りたいだけの場合は、dockerで開始できます。
docker run -de MYSQL_ROOT_PASSWORD=123456-p 3306:3306--name mysql mysql:8.0.11
テスト:
docker exec -ti mysql mysql -uroot -p
パスワードは123456で、数分後、レンガが投げ捨てられます。
Recommended Posts