日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

重新安装mysql5.7.21_linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决

發布時間:2024/4/18 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重新安装mysql5.7.21_linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在安裝過程中所遇到的問題有:

1、my-default.cnf文件找不到

2、mysql啟動報錯

3、mysql臨時密碼無法登錄

安裝環境centos 6.0

下載數據庫:

[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]#

創建數據庫目錄以及用戶和組:

[root@CLanguage src]#mkdir /data

[root@CLanguage src]#mkdir /data/mysqldata #數據存放目錄

[root@CLanguage src]#groupadd mysql #創建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源進行安裝,前提是搭建好后。)

配置參數:

[root@CLanguage src]# cd mysql

[root@CLanguage mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/src/mysql --datadir=/data/mysqldata/ #配置參數

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/ #數據庫存放目錄

[root@CLanguage mysql]# bin/mysql_ssl_rsa_setup --datadir=/data/mysqldata/

#配置參數

修改系統配置文件:

在support-files目錄未發現my-default.cnf文件,所以只能手動創建了。

[root@CLanguage support-files]# vim /etc/my.cnf (創建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/ #數據庫存放目錄

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'

(這里參數不全,可以去其他地方拷貝一個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

[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后填入文件存放路徑和數據存放路徑

啟動mysql:

[root@CLanguage mysql]# bin/mysqld_safe --user=mysql & #檢測

[root@CLanguage run]# /etc/init.d/mysql start (這里會報錯,因為找不到mysqld文件夾,所以要創建并賦予權限。)

[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 ]

登錄mysql已經修改密碼:

如果使用bin/mysql -uroot -p無法登錄時,可以使用以下辦法進行密碼重設:

修改/etc/my.cnf文件

在[mysqld]下面添加“skip-grant-tables”

(skip-grant-tables命令為跳過驗證,直接登錄。個人認為好比linux的單用戶模式,來進行mysql的密碼修改。)

重啟mysql

在命令行中輸入bin/mysql進行登錄(直接輸入mysql命令可能提示找不到命令。因為path路徑未設定,后面添加path路徑說明。)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

mysql> USE mysql; #選擇數據庫

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

修改完成后,注銷my.cnf中的“skip-grant-tables”

修改環境變量:

將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

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

解決方法

因為之所以/var/run/mysqld 目錄每次重啟后都需要手動去創建,是因為/var/run/目錄下建立文件夾是在內存中,故每次重啟后內存被清空導致/var/run/mysqld 也被清除,從而導致無法啟動mysql。

創建一個mysqld.pid文件存放目錄,重新修改文件夾所屬用戶和組。修改my.cnf文件,找到pid-file=/var/run/mysqld/mysqld.pid將mysqld.pid存放路徑修改到其他存放位置。具體操作如下:

重新啟動mysql正常運行。

總結

以上是生活随笔為你收集整理的重新安装mysql5.7.21_linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。