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 可查看当前所有的定时任务列表!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值