Debian安裝MySQL 5.7

官方文檔部署MySQL 5.7

將mysql二進制包移動到/usr/local目錄下

顯示目錄顏色

[root@ceshiji ~]# apt-get install lrzsz
[root@ceshiji /]# tail /etc/profile ###顯示目錄顏色
export LS_OPTIONS='--color=auto'
eval `dircolors`
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

MySQL安裝包

[root@mysql-193 local]# ll -h mysql-5.7.17-linux-glibc2.5-x86_64.tar 
-rw-r--r-- 1 zhangya zhangya 652M 6月  27 23:19 mysql-5.7.17-linux-glibc2.5-x86_64.tar

MySQL源碼包下載


連接:http://pan.baidu.com/s/1i5Fvnal 密碼:zkwzmysql


解壓

[root@ceshiji local]# tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar

安裝依賴

[root@mysql-193 local]# apt-cache search libaio #查找依賴包信息
[root@mysql-193 local]# apt-get install libaio1 # install library  #安裝依賴包

添加mysql組

[root@mysql-193 local]# groupadd mysql

添加mysql用戶而且禁止登陸

[root@mysql-193 local]# useradd -r -g mysql -s /bin/false mysql

建立數據庫目錄

[root@mysql-193 mysql]# mkdir -p /data/mysql_data

解壓mysql安裝包

[root@mysql-193 local]# cd /usr/local
root@ceshiji local]# tar vxf mysql-5.7.17-linux-glibc2.5-x86_64.tar
[root@ceshiji local]# rm mysql-5.7.17-linux-glibc2.5-x86_64.tar mysql-test-5.7.17-linux-glibc2.5-x86_64.tar.gz
[root@mysql-193 local]# tar zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

建立軟連接

[root@mysql-193 local]# ln -s /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 mysql

查看建立結果

[root@mysql-193 local]# ll mysql
lrwxrwxrwx 1 root staff 45 6月  27 23:58 mysql -> /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64

修改mysql目錄的權限以及所屬用戶及組屬性相關(官網)

[root@mysql-193 local]# cd mysql
[root@mysql-193 mysql]# mkdir mysql-files
[root@mysql-193 mysql]# chmod 750 mysql-files
[root@mysql-193 mysql]# chown -R mysql .    ##只修改文件屬主
[root@mysql-193 mysql]# chgrp -R mysql .        #修改文件屬組

初始化數據庫

#注意! 5.7版本之後的初始化命令和5.6有區別
#使用老命令初始化的報錯內容如
[root@mysql-193 mysql]# bin/mysql_install_db --user=mysql 
2017-06-28 00:10:11 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2017-06-28 00:10:11 [ERROR]   The data directory needs to be specified.

#使用新的初始化命令
[root@mysql-193 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data

注意, 這裏最後一行最後面會提示一個字符串,這個是mysql5.7之後的安全策略,會生成一個root的隨機密碼

......
2017-06-27T16:14:05.150862Z 1 [Note] A temporary password is generated for root@localhost: 1Diwj2r(pN-k

把目錄所屬者權限修改回root

[root@mysql-193 mysql]# chown -R root .

修改數據庫目錄的所屬者爲mysql

[root@mysql-193 mysql]# chown -R mysql /data/
[root@mysql-193 mysql]# ll /data/
drwxr-xr-x 5 mysql mysql 4096 6月  28 00:14 mysql_data

拷貝複製配置文件到/etc/my.cnf

[root@mysql-193 mysql]# grep -v "^#" support-files/my-default.cnf >/data/mysql_data/my.cnf

修改配置文件

[root@mysql-193 mysql]# vim /data/mysql_data/my.cnf
[root@mysql-193 mysql]# cat /data/mysql_data/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql_data
port = 3306  
socket = /tmp/mysql.sock  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

啓動mysql服務

[root@mysql-193 mysql]# bin/mysqld_safe --defaults-file=/data/mysql_data/my.cnf --user=mysql --pid-file=/data/mysql_data/mysqld_safe.pid --log-error=/data/mysql_data/mysql.err.log &

查看進程

[root@mysql-193 ~]# ps -ef|grep mysqld
root       3113    775  0 00:59 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql_data/my.cnf --user=mysql --pid-file=/data/mysql_data/mysqld_safe.pid --log-error=/data/mysql_data/mysql.err.log
mysql      3287   3113  0 00:59 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql_data/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql_data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql_data/mysql.err.log --pid-file=/data/mysql_data/mysqld_safe.pid --socket=/tmp/mysql.sock --port=3306
root       3333   1275  0 01:00 pts/1    00:00:00 grep mysqld

將mysql命令加入環境變量

[root@mysql-193 ~]# tail -2 /etc/profile
 PATH=$PATH:/usr/local/mysql:/usr/local/mysql/bin
[root@mysql-193 ~]# source /etc/profile

再次輸入mysql發現已經能夠補全了

[root@mysql-193 ~]# mysql

登陸數據庫

[root@mysql-193 ~]# mysql -uroot -p'1Diwj2r(pN-k'

這時使用命令會提示須要修改密碼,因此這裏修改數據庫默認密碼

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user 'root'@'localhost' identified by 'goumin123';
Query OK, 0 rows affected (0.00 sec)
mysql>exit

使用新密碼登陸

[root@mysql-193 ~]# mysql -uroot -p'goumin123'
mysql>

腳本文件一鍵安裝

[root@ceshiji ~]# cat 101.sh 

#下載依賴包
apt-get install libaio1
apt-get install lrzsz

#添加mysql用戶和組
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

#建立mysql數據目錄
mkdir -p /data/mysql_data

#解壓mysqltar包
cd /usr/local
tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar
rm -f mysql-5.7.17-linux-glibc2.5-x86_64.tar mysql-test-5.7.17-linux-glibc2.5-x86_64.tar.gz
tar zxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

#建立軟鏈接
ln -s /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 mysql

#修改mysql目錄權限和建立文件
cd /usr/local
cd mysql
mkdir mysql-files
chmod 750 mysql-files
chown -R mysql:mysql .

#初始化mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data >/tmp/mima.txt 2>&1

#修改mysql軟件目錄權限
chown -R root.staff /usr/local/mysql

#修改mysql數據目錄權限
chown -R mysql.mysql /data/

#拷貝配置文件
cd /usr/local
cd mysql
grep -v "^#" support-files/my-default.cnf >/data/mysql_data/my.cnf

#修改配置文件
cat>/data/mysql_data/my.cnf<<EOF
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql_data
port = 3306  
socket = /tmp/mysql.sock  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF


#將mysql命令加入環境變量
echo 'PATH=$PATH:/usr/local/mysql:/usr/local/mysql/bin' >> /etc/profile

#啓動mysql服務
bin/mysqld_safe --defaults-file=/data/mysql_data/my.cnf --user=mysql --pid-file=/data/mysql_data/mysqld_safe.pid --log-error=/data/mysql_data/mysql.err.log &

執行步驟

1. 將mysql安裝包放到/usr/local中

2. 執行安裝啓動腳本

3. 執行source生效全局環境變量命令

4. 進入/tmp目錄查看密碼

5. 執行命令修改密碼

mysql -uroot -pPASSWORD --connect-expired-password -e "alter user 'root'@'localhost' identified by 'goumin123';"

6. 登陸數據庫驗證

mysql -uroot -pgoumin123
相關文章
相關標籤/搜索