Linuxでmysql5.7の解凍バージョンをインストールすると、私のガールフレンドはこれを読んだ後にデータベースをインストールできます

序文:

Linuxシステムcentos7.2、mysqlバージョン5.7、私はインターネットで多くのチュートリアルを読みましたが、それらのほとんどは失敗し、多くの人が書いたインストール手順には多くの問題があります。ここでは1つずつ説明しません。これは非常に高品質のインストールチュートリアルです。一度渡すと、ガールフレンドが正しく表示できるようになります。

1.予備準備

1.古いバージョンのMySQLをアンインストールします

完全なcentosシステムの場合、関連する依存関係をインストールする必要はありませんが、関連する依存関係をインストールしたかどうかわからない場合は、インストールコマンドを実行できます(時間がかかる場合があります)。centos7.2システムアドレスがここに添付されています。依存関係をインストールする必要はありません。システムはすぐに使用できます。
アドレス:https
://pan.baidu.com/s/1SRiVqTJCyHoaE1cxjiL_Tg抽出コード:gh26

查看rpm包
rpm -qa|grep mysql 若有可用rpm -e卸载

查找mysql残留包,有则删除,没有则忽略
find / -name mysql

安装相关依赖

yum -y install make gcc-c++ cmake bison-devel ncurses-devel numactl libaio

创建用户和用户组

groupadd mysql
useradd -s /sbin/nologin -g mysql -M mysql

2.バイナリインストールパッケージをダウンロードして解凍します

ここでのダウンロードとインストールのパッケージは遅くなる可能性があります。バージョン5.7.31をダウンロードするためのネットワークディスクを提供します。プロテストインストールが利用可能です。他の手順は変更されません。
アドレス:https://pan.baidu.com/s/1JwCtrIL7dsbaZexoBHboUw
抽出コード:4tub

cd /usr/local/
# wget下载或者本地下载后上传
wget https://downloads.mysql.com/archives/get/file/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
# 解压安装包
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
# 解压后为了方便后面操作可把解压后文件名修改为mysql
mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql
# 更改文件夹所属
chown -R mysql.mysql /usr/local/mysql/

3.mysql関連のディレクトリとファイルを作成します

mkdir -p /data/mysql/{
    
    data,logs,tmp}
# 更改文件夹所属
chown -R mysql.mysql /data/mysql/

# 创建mysql配置文件my.cnf,已存在的话直接将内容覆盖就行
vi /etc/my.cnf
# 简单模板如下(可直接复制使用)[client]
port            = 3306
socket          = /data/mysql/tmp/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql        
datadir = /data/mysql/data  
port = 3306               

socket = /data/mysql/tmp/mysql.sock
pid-file  = /data/mysql/tmp/mysqld.pid
tmpdir = /data/mysql/tmp    
skip_name_resolve = 1
symbolic-links=0
max_connections = 2000
group_concat_max_len = 1024000
sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names = 1
log_timestamps=SYSTEM
character-set-server = utf8
interactive_timeout = 1800  
wait_timeout = 1800
max_allowed_packet = 32M
binlog_cache_size = 4M
sort_buffer_size = 2M
read_buffer_size = 4M
join_buffer_size = 4M
tmp_table_size = 96M
max_heap_table_size = 96M
max_length_for_sort_data = 8096

#logs
server-id = 1003306
log-error = /data/mysql/logs/error.log
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 3
log-bin = /data/mysql/logs/binlog
binlog_format = row
expire_logs_days = 15
log_bin_trust_function_creators = 1
relay-log = /data/mysql/logs/relay-bin
relay-log-recovery = 1  
relay_log_purge = 1  

#innodb  
innodb_file_per_table = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_neighbors = 0
innodb_flush_method = O_DIRECT
innodb_autoinc_lock_mode = 2
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_buffer_pool_size = 2G

4.mysql.serverを構成します

cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql

# 修改目录位置
basedir=/usr/local/mysql
datadir=/data/mysql/data

 # 注册开机启动服务
chkconfig --add mysql
chkconfig --list

5.環境変数を追加します

echo "PATH=$PATH:/usr/local/mysql/bin  " >> /etc/profile  
source /etc/profile

6.mysqlを初期化します

/usr/local/mysql/bin/mysqld  --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

# 临时密码保存在errlog中 
# 获取临时密码,该密码第一次登陆mysql时会被使用,注意密码可能是分号结尾,一起复制
more /data/mysql/logs/error.log |grep password

7. mysqlサービスを開始し、パスワードを変更します

# 启动mysql服务
service mysql start
# 使用初始密码登录mysql服务 并修改密码,下面所示是将密码改为root
mysql -uroot -p
alter user 'root'@'localhost' identified by 'root';
flush privileges;

8.Navicat接続mysqlの問題10038

下の図に示すように、よく報告される問題は10038です。
ここに画像の説明を挿入
インターネット上で収集される解決策は、主に次の3つです。

1.ユーザーテーブルは、rootユーザーのホスト値を変更します

システムのmysqlクライアントにログインし、次のようにユーザーテーブル情報を表示します。

mysql -u root -p
# 登录成功后
use mysql;
select user,host from user;

結果は次のとおりです。
ここに画像の説明を挿入
ルートに対応するホストの結果に%が含まれていない場合は、変更する必要があります(複数のルート、そのうちの1つは%に対応します)。次のコマンドを使用して変更します。

# 更改root的host值
update user set host = '%' where user = 'root';
# 刷新(改完一定要刷新)
flush privileges;

これらが完了したら、接続テストを試すことができます。それでも機能しない場合は、2番目の方法を続行します。

2.my.cnf構成ファイルのbind-address値を確認します

my.cnf構成ファイルは通常/etc/my.cnfに保存されており、異なる場合があります。不明な場合は、find-nameコマンドを使用してファイルの場所を確認できます。操作は次のとおりです。

# 全盘查找my.cnf(若是用户权限不足,可切换root查找)
find / -name my.cnf
cd /etc/mysql/my.cnf
vi my.cnf
# 将以下内容
# bind-address=127.0.0.1
更改为以下内容
bind-address=0.0.0.0

上記の操作を行った後、接続が成功するかどうかのテストを続けることができます。この部分を変更しないと、リモート接続できません。この部分を変更すると、リモート接続が可能になります。それでも機能しない場合、9つの成果はファイアウォールの問題です。

3.ファイアウォールのステータスを確認し、ファイアウォールをオフにします

一部のポート番号はデフォルトでファイアウォールの通過を許可されておらず、3306は非常に一般的なものであるため、リモート接続を使用すると接続できません。このコマンドを直接使用して、ファイアウォールのステータスを表示し、ファイアウォールをオフにして、再度テストすることができます。次のとおりです。
注:
。。異なるシステムは、異なるコマンドを持つシステムが矛盾している場合は、特定のコマンドを照会することができますCentos6がファイアウォールiptablesのある、centos7はfirewalldあり、操作コマンドも異なります。

# 查看防火墙放行的端口
firewall-cmd --list-ports
# centos7查看防火墙的状态
sudo systemctl status firewalld
# centos7关闭防火墙(临时更改,重启失效)
sudo systemctl stop firewalld
# centos7打开防火墙(临时更改,重启失效)
sudo systemctl start firewalld

解決されていない場合は、4つのユニバーサルソリューションを使用することをお勧めします。これは確実に解決されます。解決された場合、上記のコマンドはファイアウォールを一時的にオフにするだけです。この方法では、問題を永久に解決することはできません。2つの恒久的な解決策があります。1つは保護壁を恒久的に閉じること、もう1つはファイアウォールがポート3306を解放できるようにすることです。ファイアウォールを使用して、ポート3306を解放することをお勧めします。操作は次のとおりです。

  1. centos7はファイアウォールを完全にオフにします

    # 关掉系统重启时重新启动防火墙的功能
    sudo systemctl disable firewalld
    # 关闭防火墙
    sudo systemctl stop firewalld
    # 重启后生效
    reboot
    

    この時点で再起動すると、ファイアウォールが閉じます。ファイアウォールをオンにする必要がある場合、コマンドは次のとおりです。

    # 开启系统重启时重新启动防火墙的功能
    sudo systemctl enable firewalld
    # 开启防火墙
    sudo systemctl start firewalld
    # 重启后生效
    reboot
    
  2. ファイアウォールでポート3306を許可します。

    # 放行3306端口,然后一定要重启防火墙
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    # 重启防火墙
    systemctl restart firewalld.service
    # 再次查看端口有没有放行成功,下面出现3306就表示成功了
    firewall-cmd --list-ports
    
    # 参数解释
    # –zone 用以标识该端口放行的范围
    # --add-port=3306/tcp 标识端口与通讯协议
    # --permanent 标识重启放行依然生效
    

4.ユニバーサルソリューション

上記の3つの方法はまだ機能しませんか?試さないでください。問題の解決策を見つけるよりも、新しいものをインストールする方が時間がかからない場合があります。記事に記載されているcentos7.2を使用し、新しいインストールからmysql5.7.31を使用してパッケージをインストールします(記事にはネットワークディスクリンク)、上記の手順に従って確認してください。ただし、リモート接続中に接続されていない場合は、ファイアウォールをオフにするだけです。プロセス全体をテストしましたが、問題はありません。混乱している人に役立ちます。

総括する

何度も試みた後、間違ったチュートリアルをいくつか検索し、最終的に完了しました。次回同じ間違いをしないように、プロセスはまだ少し曲がりくねっています。このバージョンのインストールに関する記事を要約して、 10038問題、オンライン多くの人がチュートリアル記事を提供していますが、オペレーティングシステムのバージョンは実際には無意味です。centosのバージョンが異なっていても、警告が表示されます。操作するときは、バージョンに応じて問題を特定する必要があります。 、そうでなければ高い確率を見つけても使用できません。

オリジナリティをサポートし、この記事はこの記事を参照しています。https://blog.csdn.net/wanghao112956/article/details/90748883

おすすめ

転載: blog.csdn.net/m0_46897923/article/details/115110747