この記事は、私のWeChat公式アカウントで同時に公開されています。記事の下部にあるQRコードをスキャンするか、WeChatでchaodevを検索してフォローしてください。
記事のディレクトリ
1.システム環境
ハードウェア:Huawei国内サーバー(アームアーキテクチャKunpeng CPU)
システム:国内入札勝者Kylin(64ビット)
MySQLバージョン:5.7.26
ディスクとメモリ
特記事項:このサーバーのCPUはarmアーキテクチャであり、mysqlの公式Webサイトにあるこれらのインストールパッケージは機能しません。次のように、インストール中にバイナリファイルを実行することはできません。
コンパイルしてインストールするには、ソースコードパッケージを自分でダウンロードする必要があります。
2.インストール前の準備
優勝したKylinオペレーティングシステムにはMySQLがプリインストールされている可能性があります。インストールされている場合は、最初にアンインストールする必要があり、/ etc / my.cnfがすでに存在します。インストールするときは、最初に次のコマンドを実行してください。そうしないと、エラーが報告されます。インストール中。
mv /etc/my.cnf /etc/my.cnf.bak
3、インストール手順
1.ダウンロードを後押し
なぜboostをインストールするのですか?cmake MySQLソースコードパッケージを使用する必要があるため、MySQL5.7にはboost1.59以降が必要です。バージョン1.59を使用することをお勧めします。
ダウンロードリンク:https://www.boost.org/users/history/version_1_59_0.html
2.ブーストインストール
ブーストを解凍し、/ usr / local / boostディレクトリにコピーします
tar -zxvf boost_1_59_0.tar.gz
cp -r boost_1_59_0 /usr/local/boost
インストール
cd /usr/local/boost
./bootstrap.sh
Boostライブラリをビルドする
./b2
./b2 --prefix=/usr/local/boost install
注:bootstrap.shは、インストール環境を確認するために使用されます。b2は、前の手順が成功した後に生成されます。これを使用して、ブーストライブラリを構築します。
3.MySQLのダウンロード
ダウンロードリンク:https://downloads.mysql.com/archives/community/
自分でコンパイルする必要があるため、ソースパッケージをダウンロードします。
4.MySQLのインストール
4.1解凍
tar -zxvf mysql-5.7.26.tar.gz
/ usr / local /にコピーします
cp mysql-5.7.26 /usr/local/
4.2mysqlユーザーグループとユーザーを作成します
まず、mysqlユーザーグループとユーザーが存在するかどうかを確認します
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
mysqlユーザーグループを作成します
groupadd mysql
ユーザーmysqlを作成し、mysqlユーザーグループに参加します
useradd -r -g mysql mysql
ユーザーグループとユーザー、およびmysqlディレクトリの下のすべてのディレクトリとフォルダの権限を変更します
[root@localhost /]# chown -R mysql:mysql /usr/local/mysql-5.7.26
[root@localhost /]# chmod -R 755 /usr/local/mysql-5.7.26
4.3コンパイルに必要なコンポーネントと依存関係をインストールします
yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake
yum -y install ncurses-devel libaio-devel bison perl-Time-HiRes
yum install libatomic
4.4データディレクトリを作成する
mkdir -p /home/mysql/data #创建目录
chown mysql:mysql -R /home/mysql/data #赋予权限
4.5コンパイル
ディレクトリmysql-5.7.26に切り取り、cmakeコマンドを使用してコンパイルします
cd mysql-5.7.26/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.26 -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
次に、makeコマンドを使用してコンパイルします
make
注:エラーが報告され、指示を分離できない場合は、記事の最後にある解決策を参照してください。
4.6インストール
makeinstallを実行してインストールします
make install
5.環境変数の構成
vi /etc/profile
テキストの最後に追加
export PATH=/usr/local/mysql-5.7.26/bin:/usr/local/mysql-5.7.26/lib:$PATH
次のコマンドを実行して、構成を有効にします
source /etc/profile
6.my.cnfファイルに必要なディレクトリを作成します
mkdir /usr/local/mysql-5.7.26/tmp
mkdir /usr/local/mysql-5.7.26/run
chmod -R 755 /usr/local/mysql-5.7.26/tmp
chmod -R 755 /usr/local/mysql-5.7.26/run
mysqld.logファイルとmysqld.pidファイルを作成します
mkdir /usr/local/mysql-5.7.26/logs
mkdir /usr/local/mysql-5.7.26/pids
touch /usr/local/mysql-5.7.26/logs/mysqld.log
touch /usr/local/mysql-5.7.26/pids/mysqld.pid
7.my.cnfファイルを構成します
当初、mvはmy.cnfで実行されていましたが、この時点で復元できます。
cd /etc/
cp my.cnf.bak my.cnf
改訂内容は以下のとおりです。
[mysqld_safe]
log-error=/usr/local/mysql-5.7.26/logs/mysqld.log
pid-file=/usr/local/mysql-5.7.26/pids/mysqld.pid
[mysqldump]
quick
[mysql]
no-auto-rehash
[client]
default-character-set=utf8
[mysqld]
basedir=/usr/local/mysql-5.7.26
tmpdir=/usr/local/mysql-5.7.26/tmp
datadir=/home/mysql/data
socket=/usr/local/mysql-5.7.26/run/mysql.sock
port=3306
user=root
#忽略大小写
lower_case_table_names=1
8.データベースの初期化
cd /usr/local/mysql-5.7.26/bin
mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql-5.7.26 --datadir=/home/mysql/data --user=mysql
–initializeは、デフォルトで安全なパスワードを生成することを意味し、–initialize-insecureは、パスワードを生成しないことを意味します。
初期化後、コロンが初期パスワードになった後など、プロンプトの行が表示されます。
2020-05-29T08:47:34.659979Z 1 [Note] A temporary password is generated for root@localhost: wpDnIn.du1ce
ここでの初期パスワードは次のとおりです:wpDnIn.du1ce
9.MySQLを起動します
mysqlサービスファイルを/etc/init.d/ディレクトリにコピーし、実行権限を付与します
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
MySQLを起動します
service mysqld start
4、関連する使用
1.パスワードを変更します
mysqlにログインします
/usr/local/mysql-5.7.26/bin/mysql -uroot -p -S /usr/local/mysql-5.7.26/run/mysql.sock
パスワードを変更する
mysql>set password for root@localhost = password('123456');
2.リモート接続を開きます
mysql>use mysql;
mysql>select Host,User,authentication_string from user;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
5、ファイアウォール構成
ファイアウォールが開いていない場合は、次のようにファイアウォールを開いてファイアウォールサービスを開始します。
systemctl start firewalld
mysqlのデフォルトポートは3306であり、次のように開く必要があります。
#永久开放3306端口
firewall-cmd --add-port=3306/tcp --permanent --zone=public
#重启防火墙
firewall-cmd --reload
6、問題と解決策
1.データベースの初期化中にバイナリファイルを実行することはできません
[root@localhost bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data
-bash: ./mysqld: 无法执行二进制文件
理由:インストールパッケージはこのCPUカーネルアーキテクチャには適用されません。
解決策:mysqlソースパッケージを再コンパイルする必要があります。
2.インストールパッケージのコンパイル時にエラーが報告され、命令を分離できないことが示されます
解決策:ソースパッケージに切り替えて、次のファイルを変更します
vi storage/innobase/CMakeLists.txt
この段落の内容を次のように変更します。
IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
# Bug was fixed in GCC 5.2, so workaround only needed < 5.2
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion
OUTPUT_VARIABLE GCC_VERSION)
IF(GCC_VERSION VERSION_LESS 5.2)
INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake)
ADD_COMPILE_FLAGS(
btr/btr0btr.cc
btr/btr0cur.cc
buf/buf0buf.cc
gis/gis0sea.cc
handler/handler0alter.cc
mtr/mtr0mtr.cc
row/row0merge.cc
row/row0mysql.cc
row/row0trunc.cc
srv/srv0srv.cc
fts/fts0fts.cc
COMPILE_FLAGS "-O0"
)
ENDIF()
ENDIF()
3. mysqlを起動し、エラーを報告します
そのようなpidファイルがないことを確認してください
次に、service mysql statusコマンドを使用して、mysqlの起動ステータスを表示します。エラーは次のとおりです。
[root@localhost data]# service mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
このmysqlファイルを見つけて削除します。
それが役立つならそれが好きです!!!
原本は簡単ではありませんので、転載元をご記入ください。
以下のQRコードをWeChatでスキャンして、公式アカウントをフォローしてください