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 ...
随机推荐
- SPA项目开发之动态树+数据表格+分页
SPA项目开发之动态树+数据表格+分页 动态生成NavMenu导航菜单(只支持2级菜单) <el-menu key="" index=""> < ...
- Struts CRUD
Struts CRUD 利用struts完成增删改查 思路: 1.导入相关的pom依赖(struts.自定义标签库的依赖) 2.分页的tag类导入.z.tld.完成web.xml的配置 3.dao层去 ...
- 【JZOJ100209】【20190705】狂妄之人
题目 \(S\)串长为\(n\),字符集大小为\(k\) 一次操作为:取走\(S\)的任意一个字符或将\(S\)重排为一个没有出现过的字符\(S'\) 询问有多少个\(S\)使得后手必胜,答案对\(P ...
- Seminar Schedule
Seminar Schedule (C2017 | 2019.9-12 | 3rd semester S0500783) *************************************** ...
- LOJ6115 汇合 树上分块
本题空间很小,那些O(nlogn)的树上lca算法在这里不顶用了,可以考虑树分块. 本题的树分块是基于深度的,即按深度每\(\sqrt n\)分一块,然后一块一块往上跳,一直跳到lca处. 对于这题, ...
- 洛谷P1578 奶牛牧场(悬线法思想)
题目 悬线法的思想--即扫描线的思想,每个矩阵必定是由两个障碍来构成左右边界或者上下边界. 如果此两个障碍组成了左右边界,枚举这两个障碍中途更新这两个障碍之间的矩阵上下边界,并且更新最大值. 考虑如何 ...
- odoo13 searchpanel tree
<record id="view_department_filter" model="ir.ui.view"> <field name=&qu ...
- IDEA中Tomcat部署时war和war exploded区别
原理说明 war模式:将WEB工程以包的形式上传到服务器 :war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器: 含义解释 war模式这种可以称之为是发布模式,看名字也知道, ...
- 65 TCP连接中,流的关闭会造成Socket的关闭
转自:https://blog.csdn.net/u012525096/article/details/76924627 今天写安卓向服务器发送图片,过程为:客户端发送数据->服务器接收.处理数 ...
- 更新Linux内核
说明:为了安装Docker,当前虚拟机不满足要求,版本如下: [root@localhost116 ~]# uname -r -.el6.x86_64 [root@localhost116 ~]# c ...