參考官網 - 使用通用二進制文件在Unix / Linux上安裝MySQLhtml
MySQL社區版 下載地址node
採用二進制方式免編譯安裝MySQL,適合各種MySQL產品系列,不須要複雜的編譯設置和編譯時間等待,直接解壓下載的軟件包,初始化便可完成MySQL的安裝和啓動.mysql
關閉防火牆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
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鏈接,須要進一步配置。
$ 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
啓動腳本有兩個分別是:
/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
$ /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> 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 主從複製,以及複製實現細節分析