MYSQL5.6含5.7安装备份

安装概述

分为5.6与,5.7版本,5.7的安装与5.6略有不同,因为依赖BOOST库,下面给出2个版本的安装脚本,直接运行即可

Mysql 5.6

[root@Tuiliu ~]# cat mysql5.6.sh
yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel
useradd -s /sbin/nologin mysql
cd /usr/local/src
wget https://www.mysql.com/Downloads/MySQL-5.6/mysql-5.6.39.tar.gz
tar -zxvf mysql-5.6.39.tar.gz
cd mysql-5.6.39
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
make && make install
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
 
 
export PATH=$PATH:/usr/local/mysql/bin/
echo "export PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
 
# 通过cat >> > 追加还是清空追加
cat > /etc/my.cnf << EOF
[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
user=mysql
skip-name-resolve
long_query_time=2
slow_query_log_file=/data/mysql/mysql-slow.log
expire_logs_days=2
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
max_allowed_packet = 512M
connect_timeout = 60
net_read_timeout = 120
 
[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
EOF
 
 
mkdir -pv /data/mysql
chown -R mysql:mysql  /usr/local/mysql /data/mysql/
yum install -y perl-Module-Install
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysql/
 
 
cat >> /usr/lib/systemd/system/mysqld.service < EOF
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target
EOF

  

Msql 5.7

[root@Tuiliu ~]# cat mysql5.7.sh 
#!/bin/bash
# Install boost
wget https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz -P /usr/local/src
tar -zxf /usr/local/src/boost_1_59_0.tar.gz -C /usr/local/boost

# Install mysql5.7
yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel
useradd -s /sbin/nologin mysql
cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27.tar.gz
tar -zxvf mysql-5.7.27.tar.gz 
cd mysql-5.7.27 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=/usr/local/boost/boost_1_59_0
make && make install
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
 
 
export PATH=$PATH:/usr/local/mysql/bin/
echo "export PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
 
# 通过cat >> > 追加还是清空追加
cat > /etc/my.cnf << EOF
[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
user=mysql
skip-name-resolve
long_query_time=2
slow_query_log_file=/data/mysql/mysql-slow.log
expire_logs_days=2
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
max_allowed_packet = 512M
connect_timeout = 60
net_read_timeout = 120
 
[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
EOF
 
 
mkdir -pv /data/mysql
chown -R mysql:mysql  /usr/local/mysql /data/mysql/
yum install -y perl-Module-Install
/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysql/
 
 
cat > /usr/lib/systemd/system/mysqld.service << EOF
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target
EOF

 

初始化密码

初始设置密码
mysqladmin -uroot -p password 123
更改密码
mysqladmin -uroot -p123 password 123456
 
创建账号授权
GRANT ALL PRIVILEGES ON joker.* TO 'student'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges; 删除用户 delete from mysql.user where user="joker"; 跳过密码 [mysqld] skip-grant-tables 修改用户密码 5.6 update user set password=password('123') where user='root' and host='localhost'; 5.7 update mysql.user set authentication_string=password('123456') where user='root' and host='localhost'; flush privileges;

  

操作概述

MYSQL的增删改查

一,增加表

create table t1(id int primary key auto_increment,name char(10));

insert into student.t1(name) values('joker1'),('joker2'),('joker3');


 

二,删除表

delete from student.t1 where id=1;

 


 

三,改

update student.t1 set name='joker4' where id=3;


 

四,查

select * from student.t1;


 

五,终止线程

SHOW PROCESSLIST;

kill processid;杀死线程;

备份概述

最近在使用mysql的时候,经常要遇到导出或者导入数据的情况,对于一些简单的,可以直接使用navicate直接导出结果,但是有很多时候,由于机器在远程端,并且是线上机器的情况下,然后网络不通的话,navicate就不能使用这种方法去导出了,刚好之前没把各个命令做一个总结,所以今天单独对mysqlmysqldump导出的情况做个总结。

 


一、导出数据库

mysqldump -h 127.0.0.1 -u dbname -p -B dbname|gzip >name.sql.gz

将127.0.0.1的数据库dbname导出到name.sql文件里面

-B参数是可选的,它主要可以增加创建数据库和连接数据库的语句

-A所有库


二、导出数据库的某张表

mysqldump -h 127.0.0.1 -u username -ppassword dbname tablename >name.sql

将ip 127.0.0.1上面的数据库dbname里面的tablename表导出到name.sql文件里面

 


三、导出数据库的某张表不锁表

mysqldump -h 127.0.0.1 -u username -ppassword --single-transaction dbname tablename>name.sql

有时候导出的时候并没有锁表的权限,例如如果你只是一个只读权限的话,很可能没有锁表的权限,这个时候只要加上一句 --single-transaction 就可以不锁表进行导出

上述对于一、二、三来说都会对数据库进行锁表,加上此命令即可达到不锁表导数据的目的

 


四、导出数据库的某张表的表结构,不导出数据

mysqldump -h 127.0.0.1 -u username -ppassword --single-transaction -d dbname tablename>name.sql

有时候我们并不是要导出数据,只是要导出表结构,比如说你要按照这个表结构完全去复制创建这个表结构,这种情况下可以使用的方法很多,比如可以直接连上数据库,使用show create table tablename命令,也可以得到建表的语句;此处只是提供另外一种导出表结构的办法,如果要只导出表结构的话,可以加 -d就可以。

 


恢复概述

由于各种原因导致的我们的数据库数据丢失,可以通过恢复我们备份的数据库减少一定的损失,恢复的原理其实就是在数据库里重新执行SQL语句的过程 


 

一,利用source命令执行SQL

source /usr/local/mysql/dbbak/name.sql

该命令比较简单,只要source命令后接备份文件即可。


 

二,利用MySQL命令恢复

mysql -uroot -p < /usr/local/mysql/dbbak/name.sql


 

三,迁移数据库的恢复

有多种原因需要迁移数据库,例如服务器升级,mysql版本更新等等。首先最简单的事相同版本MySQL数据库在不同主机中迁移。恢复原理其实都大同小异,首先在源主机上用Mysqldump备份数据库,然后在目的服务器上用上述的方法进行恢复,这种方式也是最安全最常用的

mysqldump -h A -uroot -p dbname | mysql -h B -uroot -p;


 

 

 
   

 

 

你可能感兴趣的:(MYSQL5.6含5.7安装备份)