Mysql5.7 Linux編譯安裝教程

 

內容轉載自:https://www.cnblogs.com/haima/p/12276063.htmlhtml

1.系統約定

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

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

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


根據本身系統的版本選擇32或者64位,這裏我選擇64位系統的
sql

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

或者直接下載到服務器上
複製下載地址wget+地址 (默認下載到當前目錄,本身找個目錄存)ubuntu

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.gzvim

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.cnfwindows

[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/mysqlcentos

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

執行初化數據庫命令:bash

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; 

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

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

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

三、使用 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'@'%';

相關文章
相關標籤/搜索