溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決

發(fā)布時間:2020-07-15 11:11:00 來源:網(wǎng)絡 閱讀:25454 作者:hzy_709862479 欄目:MySQL數(shù)據(jù)庫

在安裝過程中所遇到的問題有:
1、my-default.cnf文件找不到
2、mysql啟動報錯
3、mysql臨時密碼無法登錄

安裝環(huán)境centos 6.0
下載數(shù)據(jù)庫:
[root@CLanguage src]# pwd
/usr/local/src #下載文件存放路徑(個人原因,可隨意。)
[root@CLanguage src]#
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
[root@CLanguage src]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz #解壓
[root@CLanguage src]# mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql
#更改文件名
卸載舊版本:
[root@CLanguage src]# rpm -qa |grep mysql
mysql-5.1.47-4.el6.x86_64
mysql-libs-5.1.47-4.el6.x86_64
mysql-devel-5.1.47-4.el6.x86_64
[root@CLanguage src]# rpm -e --nodeps mysql-5.1.47-4.el6.x86_64
[root@CLanguage src]# rpm -e --nodeps mysql-libs-5.1.47-4.el6.x86_64
[root@CLanguage src]# rpm -e --nodeps mysql-devel-5.1.47-4.el6.x86_64
[root@CLanguage src]# rpm -qa |grep mysql
[root@CLanguage src]#
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
創(chuàng)建數(shù)據(jù)庫目錄以及用戶和組:
[root@CLanguage src]#mkdir /data
[root@CLanguage src]#mkdir /data/mysqldata #數(shù)據(jù)存放目錄
[root@CLanguage src]#groupadd mysql #創(chuàng)建mysql組
[root@CLanguage src]#useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/src/mysql #添加mysql用戶使其shell模式為nologin(禁止登錄),
[root@CLanguage mysql]# chown -R mysql .
[root@CLanguage mysql]# chgrp -R mysql .
[root@CLanguage mysql]#chown -R mysql /data/mysqldata
安裝前先安裝numactl組件,或者會報錯:bin/mysqld: error while loading shared libraries: libnuma.so.1
[root@CLanguage mysql]# yum -y install numactl
(可以使用本地CD yum源進行安裝,前提是搭建好后。)
配置參數(shù):
[root@CLanguage src]# cd mysql
[root@CLanguage mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/src/mysql --datadir=/data/mysqldata/ #配置參數(shù)
2018-01-31T08:41:32.144065Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-01-31T08:41:34.501273Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-01-31T08:41:34.943351Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-01-31T08:41:35.016168Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 8b673fc1-0662-11e8-a70a-000c298536ba.
2018-01-31T08:41:35.021358Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-01-31T08:41:35.025019Z 1 [Note] A temporary password is generated for root@localhost: dhaMrqAVZ5-C {最后的root@localhost:后面為臨時密碼}

--basedir=/usr/local/src/mysql #mysql文件所在目錄
--datadir=/data/mysqldata/ #數(shù)據(jù)庫存放目錄
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
[root@CLanguage mysql]# bin/mysql_ssl_rsa_setup --datadir=/data/mysqldata/
#配置參數(shù)
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
修改系統(tǒng)配置文件:
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
在support-files目錄未發(fā)現(xiàn)my-default.cnf文件,所以只能手動創(chuàng)建了。
[root@CLanguage support-files]# vim /etc/my.cnf (創(chuàng)建my.cnf,將以下代碼復制進去,記得下面幾個目錄需要自己手動修改為自己定義的目錄)

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/src/mysql #文件存放目錄
datadir=/data/mysqldata/ #數(shù)據(jù)庫存放目錄
socket=/tmp/mysql.sock #以上面socket值要一致
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=5000

default-time_zone = '+8:00'
(這里參數(shù)不全,可以去其他地方拷貝一個my.cnf文件)
或者拷貝以下內容:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 一般配置選項
basedir = /usr/local/src/mysql #需修改
datadir = /data/mysqldata #需修改
port = 3306
socket = /var/run/mysqld/mysqld.sock
character-set-server=utf8

back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M

max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8

thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6

server_id=1

innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M

innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on

[mysqldump]
quick

max_allowed_packet = 32M

[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates

[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 8192
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
[root@CLanguage support-files]# cp mysql.server /etc/init.d/mysqld
[root@CLanguage support-files]# vim /etc/init.d/mysqld
修改/etc/init.d/mysqld在basedir和datadir后填入文件存放路徑和數(shù)據(jù)存放路徑
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
啟動mysql:
[root@CLanguage mysql]# bin/mysqld_safe --user=mysql & #檢測
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
[root@CLanguage run]# /etc/init.d/mysql start (這里會報錯,因為找不到mysqld文件夾,所以要創(chuàng)建并賦予權限。)
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
[root@CLanguage mysql]# cd /var/run/
[root@CLanguage run]# mkdir mysqld
[root@CLanguage run]# chown -R mysql mysqld
[root@CLanguage run]# chgrp -R mysql mysqld
[root@CLanguage run]# /etc/init.d/mysqld start
Starting MySQL... [ OK ]
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
登錄mysql已經(jīng)修改密碼:
如果使用bin/mysql -uroot -p無法登錄時,可以使用以下辦法進行密碼重設:
修改/etc/my.cnf文件
在[mysqld]下面添加“skip-grant-tables”
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
(skip-grant-tables命令為跳過驗證,直接登錄。個人認為好比linux的單用戶模式,來進行mysql的密碼修改。)
重啟mysql
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
在命令行中輸入bin/mysql進行登錄(直接輸入mysql命令可能提示找不到命令。因為path路徑未設定,后面添加path路徑說明。)
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

mysql> USE mysql; #選擇數(shù)據(jù)庫
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set authentication_string=password('123abc') where user='root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1

mysql> flush privileges; #刷新權限
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye
重新登錄mysql
[root@CLanguage run]#mysql -uroot -p123abc
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
修改完成后,注銷my.cnf中的“skip-grant-tables”
修改環(huán)境變量:
將mysql的bin路徑添加到/etc/profile
[root@CLanguage mysql]# vim /etc/profile
添加:
export PATH=/usr/local/src/mysql/bin:$PATH
[root@CLanguage mysql]# source /etc/profile
配置mysql自動啟動
[root@CLanguage mysql]#chmod 755 /etc/init.d/mysqld
[root@CLanguage mysql]#chkconfig --add mysqld
[root@CLanguage mysql]#chkconfig --level 345 mysqld on

在使用過程中,發(fā)現(xiàn)重啟電腦,mysql無法啟動。報PID文件找不到,存放PID文件的路徑為:/var/run/mysqld下面,每次重啟完在/var/run/目錄中都找不到mysqld文件夾,都需要重新創(chuàng)建一次mysqld文件夾和修改文件夾的所屬用戶和組,才能正常使用。

解決方法
因為之所以/var/run/mysqld 目錄每次重啟后都需要手動去創(chuàng)建,是因為/var/run/目錄下建立文件夾是在內存中,故每次重啟后內存被清空導致/var/run/mysqld 也被清除,從而導致無法啟動mysql。
創(chuàng)建一個mysqld.pid文件存放目錄,重新修改文件夾所屬用戶和組。修改my.cnf文件,找到pid-file=/var/run/mysqld/mysqld.pid將mysqld.pid存放路徑修改到其他存放位置。具體操作如下:
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決linux 安裝mysql 5.7.21詳解以及安裝過程中所遇問題解決
重新啟動mysql正常運行。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI