Linux安裝配置mysql,並實現數據定時備份

安裝

 

一、      下載mysql5.7

http://mirrors.sohu.com/mysql/MySQL-5.7/

 

Linux下載:

輸入命令:wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

 

二、      建立用戶,以及mysql的目錄

1、         建立一個mysql的組

輸入命令: groupadd mysql

2、         建立mysql用戶,並放到mysql組

輸入命令:useradd -r -g mysql mysql

3、         給mysql用戶設置密碼

輸入命令:passwd mysql

          

     

三、      解壓mysql

1、         把下載的mysql的包移動到Linux虛擬機下

 

 

2、         把tar包複製一份到/usr/local 目錄下

輸入命令:mv /software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz /usr/local

 

 

3、         解壓

輸入命令:cd /usr/local

輸入命令:tar xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

 

 

4、         把解壓出來的文件改下名字,改爲mysql

輸入命令:mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql

 

 

四、      配置相關的啓動配置文件

1、         複製my_default.cnf到/etc/my.cnf (mysql啓動時自動讀取)

 

 

輸入命令:cp my-default.cnf /etc/my.cnf

 

 

2、         解決亂碼問題

輸入命令:vi /etc/my.cnf

更改:

[mysql]

default-character-set=utf8

[mysqld]

default-storage-engine=INNODB

character_set_server=utf8

 

 

3、         複製mysql.server 到/etc/init.d/

 

 

輸入命令:cp mysql.server /etc/init.d/mysql

 

 

4、         修改 /etc/init.d/mysql 參數,給予2個目錄位置

輸入命令:vi /etc/init.d/mysql

更改:basedir=/usr/local/mysql

   datadir=/usr/local/mysql/data

 

 

5、         給目錄/usr/local/mysql 更改擁有者

     chown -R 用戶名:組名 /usr/local/mysql/

輸入命令:chown -R mysql:mysql /usr/local/mysql/

 

 

五、      初始化mysql的數據庫

1、         初始化數據庫

首先要去到mysql/bin目錄下

老版本的命令:mysql_install_db

新版本的命令:./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

生成出一個data目錄,代表數據庫已經初始化成功

這裏會生成一個臨時密碼(保存記住,後面要用到)

 

 

2、         給數據庫加密

輸入命令:./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

 

3、         啓動mysql

輸入命令:./mysqld_safe --user=mysql &

&符號:把當前進程丟給後臺

 

六、      進入客戶端

1、         登錄

輸入命令:./mysql -uroot -p

然後輸入你的臨時密碼

 

2、         修改密碼

輸入命令:set password=password('你的密碼');

 

 

七、      window遠程訪問Linux虛擬機的mysql

1、         首先要關閉防火牆,這樣window才能連接上

輸入命令:systemctl stop firewalld.service

 

 

2、         給window授權

輸入命令: grant all privileges on *.* to root@'%' identified by '123456';

 

 

3、         window遠程連接

輸入命令:mysql -hIP地址 -uroot -p123456

  

八、  設置開機自動啓動mysql服務

1、  添加服務mysql

輸入命令:chkconfig --add mysql

          

2、  設置服務開機自啓

輸入命令:chkconfig mysql on

 

九、設置path環境變量

輸入命令:vi /etc/profile

設置環境變量:export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH

 

配置好環境變量後,我們就不用再去到/usr/local/mysql/bin目錄才能登錄了,現在可以在任意目錄下登錄mysql

 

 

十、完成

      這樣我們的mysql數據庫就配置好了

備份

 

 

一、MySQL數據備份

1、在MySQL中提供了命令行導出數據庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現數據庫內容的導出dump,首先我們簡單瞭解一下mysqldump命令用法:

  mysqldump -u root -p --databases 數據庫1 數據庫2 > xxx.sql

2、編輯shell腳本:

    cd /home 進入home目錄

 mkdir mysqlbackup  創建文件夾

    vim  mysql_dump_script.sh

 

#!/bin/bash #保存備份個數,備份7天數據

number=7

#備份保存路徑

backup_dir=/home/mysqlbackup

#日期

dd=`date +%Y-%m-%d-%H-%M-%S`

#備份工具

tool=mysqldump

#用戶名

username=root

#密碼

#password=TankB214

#將要備份的數據庫 database_name=gl_gcc

#如果文件夾不存在則創建

if [ ! -d $backup_dir ];

then

   mkdir -p $backup_dir;

fi

#簡單寫法

$tool --defaults-extra-file=/etc/my.cnf $database_name >

$backup_dir/$database_name-$dd.sql

#寫創建備份日誌

echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt

#找出需要刪除的備份

delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`

#判斷現在的備份數量是否大於$number

count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`

if [ $count -gt $number ]

then

  #刪除最早生成的備份,只保留number數量的備份

  rm $delfile

  #寫刪除文件日誌

  echo "delete $delfile" >> $backup_dir/log.txt

fi

注意: mysql 5.7 以上版本不能把密碼寫在shell文件裏,因此更改/etc/my.cnf 文件

解決方法:

對於mysqldump 要如何避免出現(Warning:Using a password on the command line interface can be insecure.) 警告信息呢?

① vim /etc/my.cnf

[mysqldump]

user=root(數據庫賬號)

password=數據庫密碼

②:wq

③重啓mysql服務:service mysql restart

3、修改shell腳本權限,chmod 777  mysql_dump_script.sh  ,這樣這個腳本就變成可執行文件, ./mysql_dump_script.sh 可查看是否還有其他報錯!

二、開啓定時任務,執行數據庫備份腳本

 1、crontab -e  進入定時任務編輯頁面 

  00 01 * * * /usr/bin/sh /home/mysqlbackup/mysql_dump_script.sh  代表每天凌晨1點執行一次這個腳本。

  其他關於定時任務的資料可參考 https://www.runoob.com/w3cnote/linux-crontab-tasks.html

2、再用 service crond restart 重新啓動定時任務服務即可!

3、crontab -l 可查看當前所有的定時任務列表!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章