安装概述

分为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; 删除用户
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;


备份概述

最近在使用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;



 

MYSQL入门这一篇就够了的更多相关文章

  1. React入门看这篇就够了

    摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...

  2. [转帖]Zookeeper入门看这篇就够了

    Zookeeper入门看这篇就够了 https://my.oschina.net/u/3796575/blog/1845035 Zookeeper是什么 官方文档上这么解释zookeeper,它是一个 ...

  3. [转]React入门看这篇就够了

    摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...

  4. .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了

    写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...

  5. Git入门仅这篇就够了

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/5978937.html 前言 大家好,我是Cavalier ...

  6. 《ElasticSearch入门》一篇管够,持续更新

    一.顾名思义: Elastic:灵活的:Search:搜索引擎 二.官方简介: Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTf ...

  7. Mysql索引(一篇就够le)

    我想很多人对mysql的认知可能就是CRUD(代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作),也不敢说自己会用和熟悉mysql,当然我就是其中一个 ...

  8. Hibernate入门这一篇就够了

    前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全 ...

  9. Struts2入门这一篇就够了

    前言 这是Strtus的开山篇,主要是引入struts框架...为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门.... 为什么要引入struts? 既然Se ...

随机推荐

  1. Centos7安装MySQL(多图)

    文章目录 一.在线安装1.替换网易yum源2.清理缓存3.下载rpm文件4.安装MySQL数据库二.本地安装1.上传MySQL安装包2.安装依赖的程序包3.卸载mariadb程序包4.安装MySQL程 ...

  2. 基于react开发package.json的配置

    项目依赖 react网页开发的3件套: react, react-dom, react-router-dom, redux, react-reduxreact的UI组件库: antd(pc端), an ...

  3. 玩NOILinux

    添加PPA源 sudo add-apt-repository ppa:... 搜狗输入法 官网安装指南 下载搜狗输入法的安装包 sudo dpkg -i sogou... 安装fcitx(应该已经有了 ...

  4. 如何使用离线存储(localStorage)?

    1.存储数据:localStorage.setItem("属性","属性值") 2.获取本地存储的值:localStorage.getItem("属性 ...

  5. first-child、last-child误解

    MDN解释兄弟元素中的第一个元素 然后今天写的时候这样想出现了问题 并没有加上边框 W3C解释 尝试去掉h3,发现span加上了边框 E:first-child含义 父元素中第一个元素且第一个元素是E ...

  6. 你好,我叫Flask

    首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 一. Python 现阶段三大主流Web框 ...

  7. iptables 常用命令示例

    一.常用命令示例: 1.命令 -A, --append 范例:iptables -A INPUT -p tcp --dport 80 -j ACCEPT 说明 :新增规则到INPUT规则链中,规则时接 ...

  8. String.format()的详细用法

    问题 在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textview需要显示”XXX用户来自 上海 年龄 21 性别 男” 其中的 XXX 是用户名 每个用户也是不一样的 地区 上海 为可 ...

  9. mysql(七)查询基本语法

    连接 外连接 如表-------------------------------------------------table1 | table2 |------------------------- ...

  10. Java 签名验签工具类

    public class SignatureUtil { private static final String CHARSET = "UTF-8"; private static ...