CentOs7.3 安裝 MySQL 5.7.19 二進制版本

CentOs7.3 安裝 MySQL 5.7.19 二進制版本

參考官網 - 使用通用二進制文件在Unix / Linux上安裝MySQLhtml

MySQL社區版 下載地址node

採用二進制方式免編譯安裝MySQL,適合各種MySQL產品系列,不須要複雜的編譯設置和編譯時間等待,直接解壓下載的軟件包,初始化便可完成MySQL的安裝和啓動.mysql

1.準備工做

依賴環境

關閉防火牆linux

$ systemctl stop firewalld.service

MySQL依賴於libaio 庫sql

$ yum search libaio
$ yum install libaio

下載,解壓,重命名

一般解壓在 /usr/local/mysql 數據庫

mysql-5.7.19-linux-glibc2.12-x86_64 文件夾,重命名成mysql,這樣就湊成/usr/local/mysql目錄了segmentfault

$ cd /opt/
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
$ tar -zxvf /opt/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
$ mv /usr/local/mysql-5.7.19-linux-glibc2.12-x86_64/ /usr/local/mysql

解壓目錄內容服務器

bin mysqld服務器,客戶端和實用程序
data 日誌文件,數據庫
docs MySQL手冊信息格式
man Unix手冊頁
include 包含(標題)文件
lib
share 其餘支持文件,包括錯誤消息,示例配置文件,用於數據庫安裝的SQLsession

2.安裝MySQL

1. 新建用戶組和用戶socket

$ cd /usr/local/mysql/ 
$ groupadd mysql
$ useradd mysql -g mysql

2. 建立目錄並受權

$ mkdir data mysql-files
$ chmod 750 mysql-files
$ chown -R mysql .
$ chgrp -R mysql .

3. 初始化MySQL

$ bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up

注意密碼

4. mysql 臨時密碼

[注意]root@localhost生成臨時密碼: ;b;s;)/rn6A3,也就是 root@localhost:後的字符串
2017-08-26T03:23:35.368366Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-08-26T03:23:35.748679Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-08-26T03:23:35.793190Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-08-26T03:23:35.848286Z 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: f210c54b-8a0d-11e7-abbd-000c29129bb0.
2017-08-26T03:23:35.848889Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-08-26T03:23:35.849421Z 1 [Note] A temporary password is generated for root@localhost: ;b;s;)/rn6A3

5. 生成RSA私鑰,能夠跳過此步驟

mysql_ssl_rsa_setup須要openssl支持,用於啓用數據量ssl鏈接,須要進一步配置。

參考-MySQL 使用 SSL 鏈接

$ bin/mysql_ssl_rsa_setup

6. 授予讀寫權限

$ chown -R root .
$ chown -R mysql data mysql-files

7. 添加到MySQL 啓動腳本到系統服務

$ cp support-files/mysql.server /etc/init.d/mysql.server

3.啓動MySQL服務

啓動腳本有兩個分別是:

/usr/local/mysql/bin/mysqld_safe
/usr/local/mysql/support-files/mysql.server(即/etc/init.d/mysqld

當啓動mysqld時,mysqld_safe同時啓動

mysqld_safe監控mysqld服務,記錄錯誤日誌,並在mysqld因故障中止時將其重啓

啓動方式一

$ bin/mysqld_safe --user=mysql &

啓動方式二

$ service mysql.server start

或者

/usr/local/mysql/support-files/mysql.server start

如若出現報錯

Starting MySQL.2017-08-26T07:31:24.312411Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/var/lib/mysql/node1.pid).

給日誌目錄授予讀寫權限

$ mkdir /var/log/mariadb
$ touch /var/log/mariadb/mariadb.log
$ chown -R mysql:mysql /var/log/mariadb

4.登陸MySQL

$ /usr/local/mysql/bin/mysql -uroot -p
Enter password:

若是不知道密碼
密碼在,安裝MySQL步驟 4 ,有提到,怎麼找初始化臨時密碼

如若出現報錯

Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

故障分析

查看mysql實例的狀態

$ netstat -ntlp  | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      10794/mysqld

查看my.cnf關於socket的配置

$ more /etc/my.cnf |grep sock
socket=/var/lib/mysql/mysql.sock

解決方法,修改/etc/my.cnf

$ vi /etc/my.cnf

修改 [mysqld]組下的 socket 路徑,我是選擇註釋掉,加一行爲tmp/mysql.soc

[mysqld]
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/tmp/mysql.sock

重啓MySQL 服務

$ service mysql.server start
Shutting down MySQL.. SUCCESS!

再次登陸

$ /usr/local/mysql/bin/mysql -uroot -p

若是不知道密碼
密碼在,安裝MySQL步驟 4 ,有提到,怎麼找初始化臨時密碼

設置MySQL密碼

登錄成功後,設置MySQL密碼

mysql> ALTER USER   'root'@'localhost' identified by 'mima';

或者

mysql> set password=password("mima");

刷新權限

mysql> flush privileges;
mysql> exit;

查看mysql.user表中存在哪些賬戶 以及它們的密碼是否爲空:

MySQL 5.7.6起,使用這個語句:

mysql> SELECT User, Host, HEX(authentication_string) FROM mysql.user;
+---------------+-----------+------------------------------------------------------------------------------------+
| User          | Host      | HEX(authentication_string)                                                         |
+---------------+-----------+------------------------------------------------------------------------------------+
| root          | localhost | 2A39383730334637413534333934344644333831383037373636394637344436303631364442324338 |
| mysql.session | localhost | 2A5448495349534E4F544156414C494450415353574F52445448415443414E42455553454448455245 |
| mysql.sys     | localhost | 2A5448495349534E4F544156414C494450415353574F52445448415443414E42455553454448455245 |
+---------------+-----------+------------------------------------------------------------------------------------+

開啓遠程登陸

關閉防火牆

$ systemctl stop firewalld.service

以權限用戶root登陸

$ /usr/local/mysql/bin/mysql -uroot -p
mysql> use mysql;
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;

第1行:選擇mysql庫
第2行:修改host值(以通配符%的內容增長主機/IP地址),固然也能夠直接增長IP地址
第3行:刷新MySQL的系統權限相關表

或者

mysql> grant all privileges on *.*  to  'root'@'%'  identified by 'mima'  with grant option;
mysql> flush privileges;

推薦閱讀

CentOs7.3 搭建 MySQL 5.7.19 主從複製,以及複製實現細節分析

Contact

  • 做者:鵬磊
  • 出處:http://www.ymq.io
  • Email:admin@souyunku.com
  • 版權歸做者全部,轉載請註明出處
  • Wechat:關注公衆號,搜雲庫,專一於開發技術的研究與知識分享

關注公衆號-搜雲庫

相關文章
相關標籤/搜索