Mysql5.7 Linux編譯安裝教程


1.系統約定

安裝文件下載目錄:/data/software
Mysql目錄安裝位置:/usr/local/mysql
數據庫保存位置:/usr/local/mysql/data
日志保存位置:/tmp/mysql_error.log

2.下載mysql(這里下載的是預編譯好的二進程mysql安裝包)

在官網:https://dev.mysql.com/downloads/mysql/ 中,選擇以下版本的mysql下載:


根據自己系統的版本選擇32或者64位,這里我選擇64位系統的

建議:在windows上使用迅雷下載,速度很快,然后用工具(Xftp)上傳到 /usr/local/src目錄下;

或者直接下載到服務器上
復制下載地址wget+地址 (默認下載到當前目錄,自己找個目錄存)

cd /usr/local/src
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

3.下載完成,解壓出來

tar zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

4.移到解壓好的文件夾到/usr/local/mysql

mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql
cd /usr/local/mysql
mkdir data  //新建文件夾data
mkdir mysql-files
groupadd mysql //新建mysql組
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql //修改MySQL安裝目錄和data數據中心的權限:
cat /etc/passwd //查看用戶和分組信息:查看用戶列表
cat /etc/group //查看用戶組列表
chown -R mysql . //改變目錄屬有者 要在/usr/local/mysql目錄下
chgrp -R mysql .

5.修改mysql配置文件

vim /etc/my.cnf

[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
log_error=/tmp/mysql_error.log
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

mkdir /var/lib/mysql
chmod 777 /var/lib/mysql

6.配置參數,獲取密碼的命令:

執行初化數據庫命令:

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

如果報錯缺少插件,去百度libnuma.so.1搜一下,發現缺少 numactl ,去下載安裝上 yum -y install numactl 再執行上面的初化數據庫命令

啟動成功后,看一下data文件目錄里已經有數據了
ll data

此處需要注意記錄生成的臨時密碼,如上文結尾處的

如果沒有顯示密碼,就使用下面的命令查看密碼:

cat /tmp/mysql_error.log

bin/mysql_ssl_rsa_setup --datadir=/usr/local/data/mysql //設置ssl可以不用執行

7.啟動MySQL服務器mysqld

root@haima-PC:~# /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.Logging to '/tmp/mysql_error.log'.
. ok

以上啟動成功了.

安裝時可能出現的三種報錯:

a.mysql服務已經啟動了,再次啟動會報錯.

如果像上圖一下報錯,就執行下面的操作,殺死進程,再執行,重啟

ps -aux|grep mysql
kill -9 1512
/usr/local/mysql/support-files start`

b.如果還是不行,一直啟動不了,就把data文件夾刪除了,再重新建一下,

        cd /usr/local/mysql
        rm -rf /data
     mkdir data //新建的data文件夾改權限改為group	
	chown -R mysql:mysql /usr/local/mysql/data  //改權限命令	
	bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //再初始化一下
        cat /tmp/mysql_error.log	//查看一下密碼
	./support-files/mysql.server start //再啟動,就ok了	

c.如果還是不可以,就把 安裝的/usr/local/mysql文件夾刪除了,到/user/local/src里把mysql文件再解壓出來再復制到/usr/local文件夾下,

  把/etc/my.cnf刪除了,再重新建一下,
  查一下如果有進程,殺死mysql進程,   
 重復  上面b的方法  

9.設置好環境變量后,重新加載一下就可以生效了

編輯profile文件
vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin

或者

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
/usr/local/mysql/support-files //如果是ubuntu加入這一句
source /etc/profile //刷新生效

連接數據庫

mysql -uroot -p密碼 //連接一下mysql
如果提示下面的錯誤:就用navicat連聯連,再修改密碼
Your password has expired. To log in you must change it using a client that supports expired passwords.其實只需要修改密碼就可以了


alter user 'root'@'localhost' identified by 'whm2416@qq.com'; //修改賬號密碼

use mysql
create user 用戶名@'%' identified by '密碼'; //創建賬號 haiama用戶名字
grant all privileges on *.* to 用戶名@'%' with grant option; //授權
FLUSH PRIVILEGES; //刷新
select version(); //查看版本

quit / exit //退出

設置開機啟動:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysqld 
chkconfig mysql on

啟動
service mysql start //centos
mysql.server start //ubuntu

重啟:
service mysql restart //centos
mysql.server restart //ubuntu

停止:
service mysql stop //centos
mysql.server stop //ubuntu

看啟動日志:
cat mysql_error.log

查看mysql狀態:
service mysql status

停止mysql服務
service mysql stop

或者殺進程:
killall -9 mysql

如果沒有安裝killall可以使用yum安裝
yum provides killall
查出來psmisc-22.20-11.el7.x86_64
yum -y install psmisc-22.20-11.el7.x86_64
killall -9 mysql

忘記密碼,初使化密碼(需要提前備份數據,重置后,數據就都沒有了)

killall -9 mysql //停止mysql軟件
pkill -9 mysql //同上面的命令停止mysql軟件
rm -rf /usr/local/mysql/data //刪除data目錄
mkdir data //新建data文件夾
chown -R mysql.mysql /usr/local/mysql //添加權限
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  //初使化密碼,保存一下密碼
cat /tmp/mysql_error.log //查看密碼
mysql_ssl_rsa_setup //設置ssl
service mysql start //啟動
mysql -uroot -p密碼  //登陸
alter user 'root'@'localhost' identified by 'whm****@**.com'; //修改賬號密碼 更改root密碼,需要帶數字,大寫字母,小寫字母,特殊符號
flush privileges;

1、修改 /etc/my.cnf,在 [mysqld] 小節下添加一行:skip-grant-tables=1
這一行配置讓 mysqld 啟動時不對密碼進行驗證

vim /etc/my.conf
加一行:skip-grant-tables=1

2、重啟 mysqld 服務:
/usr/local/mysql/support-files/mysql.server restart

3、使用 root 用戶登錄到 mysql
mysql -u root

alter user 'root'@'localhost' identified by 'whm****@***.com'; //修改賬號密碼
FLUSH PRIVILEGES; //刷新
quit

注意:若遠程工具連接不上,請用 iptables -F 命令來清除防火牆規則

MySql拓展

更改root密碼,需要帶數字,大寫字母,小寫字母,特殊符號

例:你的新密碼為1qaz2wsx@!XLD

# SET PASSWORD = PASSWORD('你的新密碼');
# 上面的方式不行就用下面這個
ALTER USER USER() IDENTIFIED BY '你的新密碼';
# 設置密碼永不過期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
# 刷新MySQL的系統權限相關表
flush privileges;

根據個人需求,設置數據庫用戶在所有ip下以及在本地可訪問,以下用root用戶做演示

grant all privileges on *.* to root@"%" identified by "你的密碼" with grant option; //給把所有的ip地址開權限
grant all privileges on *.* to root@"localhost" identified by "你的密碼" with grant option;
grant all privileges on *.* to 'root'@'113.46.90.222' identified by '12345' with grant option;  //給指的ip地址開權限
grant all privileges on *.* to 'root'@'113.46.*.*' identified by '12345' with grant option;  //給指的ip段開權限
flush privileges;

注意:若遠程工具連接不上,請用 iptables -F 命令來清除防火牆規則

新建用戶

CREATE USER 'xld_test'@'%' IDENTIFIED BY '你的密碼';

用戶授權

添加用戶權限: GRANT ALL ON databasename.tablename TO 'xld_test'@'%';
撤銷用戶權限: REVOKE ALL ON databasename.tablename TO 'xld_test'@'%';
刪除用戶及權限 :drop user 'xld_test'@'%';


免責聲明!

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



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