mysql-5.7.25安裝以及使用


1、

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

2、

yum install -y libaio

3、檢查你所用的Linux下有沒有安裝過mysql,沒有卸載干凈

rpm -qa|grep -i mysql

如果存在,則需要先卸載掉,不然會出現覆蓋錯誤。

yum remove mysql mysql-server mysql-libs mysql-server;
find / -name mysql 將找到的相關東西delete掉;
rpm -qa|grep mysql(查詢出來的東東yum remove掉)

 

4、創建mysql的用戶組/用戶, data目錄及其用戶目錄

mkdir -p /usr/local/mysql/data # mysql的默認安裝路徑,建議不要更換,如果更換后續需要更新配置 在mysql文件夾下創建文件夾data
useradd mysql # 創建一個名為mysql的用戶組

 

5、解壓縮並轉移

# tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz # 解壓文件
# cd mysql-5.7.17-linux-glibc2.5-x86_64 # 進入
# mv * /usr/local/mysql/

 

6、編譯安裝

cd /usr/local/mysql/

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

記錄上面成功安裝后的密碼,如上:hIE;k,h8gd#q,后續用到!

 

7、配置mysql

chown -R mysql.mysql /usr/local/mysql # 賦予權限

#進入mysql的安裝目錄支持文件目錄
cd /usr/local/mysql/support-files

# 拷貝配置文件模板為新的mysql配置文件,
cp my-default.cnf /etc/my.cnf

#設置編碼,可按需修改新的配置文件選項, 不修改配置選項, mysql則按默認配置參數運行.
#如下是我修改配置文件/etc/my.cnf, 設置編碼為utf8以防亂碼
vim /etc/my.cnf


[mysqld]

log-bin=mysql-bin

server-id=1
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

character_set_server=utf8
init_connect='SET NAMES utf8'


[client]
default-character-set=utf8

此處需要注釋掉##sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

否則后續登陸時會報異常:

mysql: [ERROR] unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'


8、啟動mysql服務

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

截至目前,證明mysql已運行成功!!!

 

9、配置mysql服務開機自動啟動

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 拷貝啟動文件到/etc/init.d/下並重命令為mysqld
# chmod 755 /etc/init.d/mysqld # 增加執行權限
# chkconfig --list mysqld # 檢查自啟動項列表中沒有mysqld這個,
# chkconfig --add mysqld # 如果沒有就添加mysqld:
# chkconfig mysqld on # 用這個命令設置開機啟動:

 

10、mysql服務的啟動/重啟/停止

# systemctl start mysqld # 啟動服務
# systemctl restart mysqld # 重啟服務
# systemctl stop mysqld # 停止服務

11、修改mysql用戶root的密碼以及開放遠程授權
ln -s /usr/local/mysql/bin/mysql /usr/bin #軟鏈接到/usr/bin
mysql -u root -p
輸入之前記錄的密碼,登陸mysql
SET PASSWORD = PASSWORD('123456'); # PASSWORD()里面的123456 是設置的新密碼,可以設置成你的密碼
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
grant all privileges on *.* to 'root'@'localhost' identified by '123456'; #mysql遠程授權

 

12、更改一些編碼
use mysql;
\s #查看mysql信息
show variables like 'character%';
SET character_set_database = utf8;
show variables like 'character%';
\s

 

13、調整防火牆、開啟3306端口:
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

systemctl restart iptables

 至此,單機數據庫就安裝完成了,至於如何創建數據庫,請自行查詢文檔.

PS:如果需要配置主從,請參照以上1-13步,在配置一台新的機器

 

主從配置

主配置文件修改:

mysql -u root -p #進入mysql
create user 'repl'@'slave_IP' IDENTIFIED BY 'repl'; #給slave創建可以同步數據的賬號密碼
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'slave_IP' IDENTIFIED BY 'repl'; #給slave授權訪問權限
flush privileges;
select user,host,authentication_string from mysql.user;
show master status\G;
獲得File信息和Position信息,從庫配置稍后需要使用

從庫配置:
vim /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id=2
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

character_set_server=utf8
init_connect='SET NAMES utf8'


[client]
default-character-set=utf8

 

重啟從數據庫

systemctl restart mysqld 

mysql -u root -p #進入mysql
change master to master_host='1master_ip', master_user='repl', master_password='repl', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=1136, master_connect_retry=30;
start slave; #mysql-bin.000001就是主庫的File信息,master_log_pos就是主庫的Position信息
show slave status\G; #查看,如果沒有報錯,即代表成功,你就可以開始嘗試在主庫建表,看看從庫是否有相同信息了。

如有報錯:
檢查master的狀態:
show master status\G;
比對change master的master_log_file和master_log_pos是否和master一致,如果一致,執行以下命令:
stop slave;

reset slave;

start slave;

 

備份:

mysqldump -u root -p --databases choose test > roverliang.sql

./mysqlbinlog --no-defaults --database=jiashunc --start-datetime="2018-01-25 09:00:00" --stop-datetime="2018-01-26 10:40:00" --base64-output=decode-rows -vv ../data/mysql-bin.000005

 

l重置root密碼:

# systemctl stop mysqld # 停止服務

# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &  #不檢查權限的方式啟動

#use mysql;

update mysql.user set authentication_string=password('Aa111111') where user='root' ;

# 然后退出,重啟服務

# systemctl restart mysqld 

mysql -u root -p
輸入之前重置的密碼,登陸mysql

mysql> use mysql; #會報如下錯誤
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

SET PASSWORD = PASSWORD('Aa111111'); #重新在設置一下密碼即可.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM