MYSQL入门这一篇就够了
安装概述
分为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入门这一篇就够了的更多相关文章
- React入门看这篇就够了
摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...
- [转帖]Zookeeper入门看这篇就够了
Zookeeper入门看这篇就够了 https://my.oschina.net/u/3796575/blog/1845035 Zookeeper是什么 官方文档上这么解释zookeeper,它是一个 ...
- [转]React入门看这篇就够了
摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...
- .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了
写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...
- Git入门仅这篇就够了
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/5978937.html 前言 大家好,我是Cavalier ...
- 《ElasticSearch入门》一篇管够,持续更新
一.顾名思义: Elastic:灵活的:Search:搜索引擎 二.官方简介: Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTf ...
- Mysql索引(一篇就够le)
我想很多人对mysql的认知可能就是CRUD(代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作),也不敢说自己会用和熟悉mysql,当然我就是其中一个 ...
- Hibernate入门这一篇就够了
前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全 ...
- Struts2入门这一篇就够了
前言 这是Strtus的开山篇,主要是引入struts框架...为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门.... 为什么要引入struts? 既然Se ...
随机推荐
- [KCOJ3393]上马
题目描述 Description Chicken在IEC(International Equestrianism Competition(国际马术表演赛))惨跪,没有成功的上到马,他深刻的记得他的选手 ...
- hadoop java.nio.channels.ClosedChannelException
今天在跑一个任务的时候,报错java.nio.channels.ClosedChannelException. INFO mapreduce.Job: Task Id : attempt_152101 ...
- Pandas | 10 排序
Pandas有两种排序方式,它们分别是 - 按标签 按实际值 import pandas as pd import numpy as np df=pd.DataFrame(np.random.rand ...
- Python基于tkinter.messagebox实现简易消息框、对话框
库导入: import tkinter import tkinter.messagebox 有关提示框: tkinter.messagebox.showinfo(title=None, message ...
- Adobe Illustrator 入门 新建 保存图片
下载 AI 的破解版 我这里用的是 Adobe_Illustrator CC 2019 Lite 精简特别版 V23.0.2 简体中文版 64位 安装略 新建文档 通常是 A4 图形绘制 选择 矩形工 ...
- Java判断文件类型
通常,在WEB系统中,上传文件时都需要做文件的类型校验,大致有如下几种方法: 1. 通过后缀名,如exe,jpg,bmp,rar,zip等等. 2. 通过读取文件,获取文件的Content-type来 ...
- 您访问的URL地址不被允许。
访问一个网站在一定时间内的频率过高会被当做攻击网站的行为,然后会被该网站限制访问,再次访问该网站便会出现以下界面,解决办法有: ①更改自己电脑的IP地址 ②换一个设备访问,比如把用电脑访问换成用手机访 ...
- Python内网渗透扫描器Ladon
Ladon Scanner For Python PyLadon 目前python版功能较少,无论在Windows还是Linux系统性能以及速度均也比不上Ladon.exe 唯一的优点是跨平台,后续会 ...
- json对象与string相互转换教程
一.说明 1.1 背景说明 json对象与string相互转换,这东西想写了很多次,但总觉得网上教程比较成熟,所以之前每次都放弃了.但今天又被string转json对象折腾了半天,实在受不了,所以还是 ...
- TP5接口开发之异常处理接管
前几天在开发的时候用到了第三方的扩展包,使用过程中第三方扩展包抛出了异常 因为这边是接口开发,需要返回错误代码以及提示信息等,所以就需要接管异常处理. 此文章只做笔记,有不对或不详细的地方欢迎大家留言 ...