数据库Mysql的安装及操作---数据引擎
一、1、什么是数据
描述事物的符号记录称为数据。
2、什么是数据库
存放数据的仓库,只不过这个仓库在计算机上存储设备上。
二、Mysql的介绍
Mysql 就是一个socket的服务端
三、客户端软件
mysql自带
python模块
四、Mysql 的下载安装
1、Linux版本
#二进制rpm包安装
yum -y install mysql-server mysql
1.解压tar包
cd /software
tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21 2.添加用户与组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql mysql-5.6.21 3.安装数据库
su mysql
cd mysql-5.6.21/scripts
./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data 4.配置文件
cd /software/mysql-5.6.21/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步
修改文件中的两个变更值
basedir=/software/mysql-5.6.21
datadir=/software/mysql-5.6.21/data 5.配置环境变量
vim /etc/profile
export MYSQL_HOME="/software/mysql-5.6.21"
export PATH="$PATH:$MYSQL_HOME/bin"
source /etc/profile 6.添加自启动服务
chkconfig --add mysql
chkconfig mysql on 7.启动mysql
service mysql start 8.登录mysql及改密码与配置远程访问
mysqladmin -u root password 'your_password' #修改root用户密码
mysql -u root -p #登录mysql,需要输入密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #允许root用户远程访问
mysql>FLUSH PRIVILEGES; #刷新权限
源码安装Mysql
1. 解压
tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz
mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需这样,很多脚本或可执行程序都会直接访问这个目录 2. 权限
groupadd mysql //增加 mysql 属组
useradd -g mysql mysql //增加 mysql 用户 并归于mysql 属组
chown mysql:mysql -Rf /usr/local/mysql // 设置 mysql 目录的用户及用户组归属。
chmod +x -Rf /usr/local/mysql //赐予可执行权限 3. 拷贝配置文件
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //复制默认mysql配置 文件到/etc目录 4. 初始化
/usr/local/mysql/scripts/mysql_install_db --user=mysql //初始化数据库
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //复制mysql服务程序 到系统目录
chkconfig mysql on //添加mysql 至系统服务并设置为开机启动
service mysql start //启动mysql 5. 环境变量配置
vim /etc/profile //编辑profile,将mysql的可执行路径加入系统PATH
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile //使PATH生效。 6. 账号密码
mysqladmin -u root password 'yourpassword' //设定root账号及密码
mysql -u root -p //使用root用户登录mysql
use mysql //切换至mysql数据库。
select user,host,password from user; //查看系统权限
drop user ''@'localhost'; //删除不安全的账户
drop user root@'::1';
drop user root@127.0.0.1;
select user,host,password from user; //再次查看系统权限,确保不安全的账户均被删除。
flush privileges; //刷新权限 7. 一些必要的初始配置
1)修改字符集为UTF8
vi /etc/my.cnf
在[client]下面添加 default-character-set = utf8
在[mysqld]下面添加 character_set_server = utf8
2)增加错误日志
vi /etc/my.cnf
在[mysqld]下面添加:
log-error = /usr/local/mysql/log/error.log
general-log-file = /usr/local/mysql/log/mysql.log
3) 设置为不区分大小写,linux下默认会区分大小写。
vi /etc/my.cnf
在[mysqld]下面添加:
lower_case_table_name=1 修改完重启:#service mysql restart
源码安装mariadb
2、window版本
1.下载
MySQL Community Server
5.7
.
16 ---- 版本
http:
/
/
dev.mysql.com
/
downloads
/
mysql
/ ---- 下载地址
cd c:\mysql
-
5.7
.
16
-
winx64\
bin ---- 存放mysql的地方

4、启动
mysqld
如图:
5、启动MySQL客户端并连接MySQL服务
由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码
看到下面这个界面就安装成功:
查看是否mysql启动 :
tasklist |findstr mysql
注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
1 # 启动MySQL服务
2 net start mysql
3
4 # 关闭MySQL服务
5 net stop mysql
在windows下,为mysql服务指定配置文件

#在mysql的解压目录下,新建my.ini,然后配置
[mysqld]
;skip-grant-tables
port=3306
character_set_server=utf8
#解压的目录
basedir=E:\mysql-5.7.19-winx64
#data目录
datadir=E:\my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据 [client]
port=3306
default-character-set=utf8
mysqld --inisialize-insecure 初始化以没有密码的形式进入
mysqld 启动mysqld
tasklist |findstr mysql 查看是否mysql启动
mysql -uroot -p 链接
quit 退出
tskill mysqld 干掉mysql
mysqld --install 在winds 中安装mysqld
mysqladmin -uroot password 123 设置密码
mysqld --skip-grant-tables 跳过受限直接启动mysqld
update mysql.user set authentication_string=
password(456) where user='root'and host='localhost';(5.7版本) 修改密码成功
update mysql.user set password=password(5.6版本)
flush privileges; 刷新权限
五、(1)数据库操作及引擎
create database db1; 增加db1文件夹
show databases ; 查看所有数据库
show create database db1; 查看db1文件夹
drop database db1; 删除db1文件夹
alter database db1 charset utf8 修改db1编码
use db2 切换文件夹
select database() 查看当前在那个文件夹下
create table t1(id int,name char); 创建表
show create table t1; 查看表
show tables; 查看当前文件下的所有表
drop table t1; 删除表
insert into t1(id) values(1) 插数据的方式
select * from t1; 查看插入数据的内容
mysqld --inisialize-insecure 初始化以没有密码的形式进入 mysqld 启动mysqld tasklist |findstr mysqld 查看是否mysql启动 mysql -uroot -p 链接 quit 退出 tskill mysql 干掉mysql mysqld --install 在winds 中安装mysqld mysqladmin -uroot password 123 设置密码 mysqld --skip-grant-tables 跳过受限直接启动mysqld update mysql.user set authentication_string=
password(456) where user='root'and host='localhost';(5.7版本) 修改密码成功 update mysql.user set password=password(5.6版本) flush privileges; 刷新权限 select user(); 查看当前用户 create user 'mqj'@'localhost' identfied by ''; 创建本机账号 create user 'egon'@'%' identfied by '' 创建远程账号 create user 'wupeiqi'@'192.168.20.%' identified by '' 创建远程网端账号 mysql -h192.168.20.99 -ualex -p123 远程链接 数据库文件夹的的操作 create database db1 charset utf8; 增加db1文件夹 show databases ; 查看所有数据库 show create database db1; 查看db1文件夹 drop database db1; 删除db1文件夹 alter database db1 charset gbk; 修改db1编码 操作文件(表)
切换到文件下:
use db2 切换文件夹 \c 取消命令 create table t1(id int,name char(10)); 创建表 show tables; 查看当前文件下的所有表 show create table t1; 查看表 alter table t1 add age int; 增加字段 alter table t1 modify name char(12); 改表中的名字字符 desc t1; 查看表结构 drop table t1; 删除表 操作文件的一行行内容(记录) insert into db1.t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 增加记录 select * from t1; 查看所有字段对应的值 select * from t1 where id>2; 查看id大于2的字段 select name from t1; 查看单个字段 update t1 set name='SB' where id=3; 改里面的记录 delete from t1 where id=3; 删除一条记录 对于清空表的记录有两种方式,但是推荐使用后者
delete from t1;
truncate t1; #当数据量大的时候下,删除速度快 整体删除 自增id
create table t2(id int primary key,name char(10));
create table t3(id int not null unique,name char(10));
create table t2(id int primary key auto_increment,name char(10)); 补充
create table t6 select * from t5; 拷贝表 create table t7 select * from t5 where 1=2; 拷贝表结构 alter tablet7 modify id int primary key auto_increment 改表结构 delete t7 set name='' ; 删除记录 select database() 查看当前在那个文件夹下 insert into t1(id) values(1) 插数据的方式 select * from t1; 查看插入数据的内容 select * from t1; 数据类型
1、数字(默认都是有符号,宽度指的是显示宽度,与存储无关)
(1)tinyint [unsigned][zerofill] (1个字节存)
有符号:
-128~~127
无符号:
0~~255
(2) int [unsigned][zerofill] (4个字节存)
有符号:
-2147483648~~2147482647
无符号:
0~~4294967295
(3)bigint[unsigned][zerofill] (8个字节存)
有符号:
-9223372036854775808~~9223372036854775808
无符号:
0~~494967295
2、字符(宽度指的是字符个数 与存储有关):
char :定长(简单粗暴,不够则凑够固定长度存放起来,浪费空间,存取速度快)
varchar: 变长(精准,计算除待存放的数据长度,节省空间,存取速度慢)
3、日期
#注册时间
datatime 2017-09-06 10:39:46
#出生年月日 ,开学时间
data:2017-09-06
#聊天记录,上课时间
time:10:39:46
#出生年
year:2017
4、枚举与集合
enum枚举:规定一个范围,可有多个值,但是为该字段船只是,只能去规定范围中的一个
set集合:规定一个范围,可有多个值,但是为该字段船只是,只能去规定范围中的一个或多个 1:
整型测试
create table t1(id tinyint);
create table t2(id int);
create table t3(id bigint) ; #测试
create table t4(salary float(5,2)); insert into t4 values(3.735);
insert into t4 values(3.735684); 2、char 与 varcahr测试
create table t6(name char(4));
insert into t6 values('alex')
insert into t6 values('欧德博爱');
insert into t6 values('艾利克斯'); create table t7(x char(5),y varchar(5));
insert into t7 values('addd','dsds') #char_length:查看字符长度
insert into t7 values('你好啊','好你妹')#char_length:查看字符长度 了解
insert into t7 values('你好啊','好你妹')#length:查看字节长度
select char_length(x),char_length(y) from t7; 注意两点:
insert into t7 values('abc','abc');#length:查看字节长度
select * from t7 where y='abc '; #去掉末尾的空格然后去比较 3、日期
create table student(
id int ,
name char(5),
born_date date,
born_year year,
reg_time datetime,
class_time time
);
insert into student values(1,'alex',now(),now(),now(),now());
insert into student values(1,'alex','2017-09-06','','2017-09-06 10:09:36','09:06:36'); 4、枚举与集合
create table student1(
id int primary key auto_increment,
name char(5),
sex enum('male','female'),
hobbies set('music','read','coding')
); insert into student1(name,sex,hobbies) values('egon','male','music,read,coding'); 1 简单查询
select * from employee;
select name,salary from employee; 2 where条件
select name,salary from employee where salary > 10000;
select name,salary from employee where salary > 10000 and salary < 20000;
select name,salary from employee where salary between 10000 and 20000;
select name,salary from employee where salary not between 10000 and 20000; select name,salary from employee where salary = 10000 or salary = 20000 or salary = 30000;
select name,salary from employee where salary in (10000,20000,30000); select * from employee where salary = 10000 or age = 18 or sex='male'; select * from employee where post_comment is Null;
select * from employee where post_comment = Null;
select * from employee where post_comment is not Null; select * from employee where name like '%n%'; select * from employee where name like 'e__n'; 3 group by分组
mysql> select depart_id,group_concat(name) from employee group by depart_id;
+-----------+--------------------------------------------------------------+
| depart_id | group_concat(name) |
+-----------+--------------------------------------------------------------+
| 1 | egon,alex,wupeiqi,yuanhao,liwenzhou,jingliyang,jinxin,成龙 |
| 2 | 歪歪,丫丫,丁丁,星星,格格 |
| 3 | 张野,程咬金,程咬银,程咬铜,程咬铁 |
+-----------+--------------------------------------------------------------+
3 rows in set (0.00 sec) mysql> select depart_id,count(id) from employee group by depart_id;
+-----------+-----------+
| depart_id | count(id) |
+-----------+-----------+
| 1 | 8 |
| 2 | 5 |
| 3 | 5 |
+-----------+-----------+
3 rows in set (0.01 sec) mysql> select depart_id,group_concat(id) from employee group by depart_id;
+-----------+------------------+
| depart_id | group_concat(id) |
+-----------+------------------+
| 1 | 1,2,3,4,5,6,7,8 |
| 2 | 9,10,11,12,13 |
| 3 | 14,15,16,17,18 |
+-----------+------------------+
3 rows in set (0.00 sec) mysql> select depart_id,count(id) from employee group by depart_id;
+-----------+-----------+
| depart_id | count(id) |
+-----------+-----------+
| 1 | 8 |
| 2 | 5 |
| 3 | 5 |
+-----------+-----------+
3 rows in set (0.00 sec) mysql> select depart_id,max(salary) from employee group by depart_id;
+-----------+-------------+
| depart_id | max(salary) |
+-----------+-------------+
| 1 | 1000000.31 |
| 2 | 4000.33 |
| 3 | 20000.00 |
+-----------+-------------+
3 rows in set (0.00 sec) mysql> select depart_id,min(salary) from employee group by depart_id;
+-----------+-------------+
| depart_id | min(salary) |
+-----------+-------------+
| 1 | 2100.00 |
| 2 | 1000.37 |
| 3 | 10000.13 |
+-----------+-------------+
3 rows in set (0.00 sec) mysql> select depart_id,sum(salary) from employee group by depart_id;
+-----------+-------------+
| depart_id | sum(salary) |
+-----------+-------------+
| 1 | 1070200.64 |
| 2 | 13001.47 |
| 3 | 84000.13 |
+-----------+-------------+
3 rows in set (0.00 sec) mysql> select depart_id,avg(salary) from employee group by depart_id;
+-----------+---------------+
| depart_id | avg(salary) |
+-----------+---------------+
| 1 | 133775.080000 |
| 2 | 2600.294000 |
| 3 | 16800.026000 |
+-----------+---------------+
3 rows in set (0.00 sec)
(2)创建四个表,分别使用innodb,myisam,memory,
blackhole存储引擎,进行插入数据测试
MariaDB [db1]> create table t1(id int)engine=innodb;
MariaDB [db1]> create table t2(id int)engine=myisam;
MariaDB [db1]> create table t3(id int)engine=memory;
MariaDB [db1]> create table t4(id int)engine=blackhole;
MariaDB [db1]> quit
[root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据
db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm #memory,在重启mysql或者重启机器后,表内数据清空
#blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录
数据库Mysql的安装及操作---数据引擎的更多相关文章
- Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递
http://niuzhenxin.iteye.com/blog/1706203 Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...
- [mysql]brew 安装 配置 操作 mysql(中文问题)
mac 下卸载mysqldmg mac下mysql的DMG格式安装内有安装文件,却没有卸载文件--很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stac ...
- 数据库 —— mySQL 的安装
[转载Link]MySQL-5.6.24免安装版配置方法,有需要的朋友可以参考下. 1. 下载MySQL Community Server 5.6.24 2. 解压MySQL压缩包 将以下载的MySQ ...
- 数据库——MySQL及安装
what's the MySQL MySQL是一个关系型数据库管理系统,MySQL 是目前最流行的关系型数据库管理系统之一,在 WEB 应用方面MySQL是最好的 RDBMS (Relational ...
- 数据库/MySQL的安装
来源:https://www.cnblogs.com/liubing8/p/11431382.html mysql的安装.启动和基础配置 —— windows版本 1.下载 第一步:打开网址,http ...
- 数据库MySql的安装
1.MySQL概述 MySQL最初是由“MySQL AB公司”开发的一套关系型数据库管理系统(RDBMS-Relation DataBase Management System).MySQL不仅是最流 ...
- 数据库设计_ERMaster安装使用_PowerDesigner数据设计工具
数据库设计 1. 说在前面 项目开发的流程包括哪些环节 需求调研[需求调研报告]-- 公司决策层 (1) 根据市场公司需求分析公司是否需要开发软件来辅助日常工作 (2) 公司高层市场考察,市场分析,决 ...
- linux篇-linux数据库mysql的安装
1数据库文件放到opt下面 2赋予权限775 3运行脚本 4运行成功 5数据库操作 密码修改并刷新 权限修改,允许外部设备访问 6工具连接 7附录 1.显示当前数据库服务器中的数据库列表: mysql ...
- 【MySQL】数据库 --MySQL的安装
本篇教程主要讲解在CentOS 6.5下编译安装MySQL 5.6.14! 1.卸载旧版本: 使用下面的命令检测是否安装有MySQL server <span style="font- ...
随机推荐
- C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 本篇..基 ...
- Django导入外部js、css、图片等巨大的坑
初学Django,踩过最大的坑只有之一.至今任然不是很明白. 通常我们导入外部js等文件都是 <script src="myScript.js"></script ...
- Struts2学习笔记(二)——配置详解
1.Struts2配置文件加载顺序: default.properties(默认常量配置) struts-default.xml(默认配置文件,主要配置bean和拦截器) struts-plugin. ...
- VMware Workstation 12 Pro 之安装Windows10 EP系统
VMware Workstation 12 Pro 之安装Windows10 EP系统... --------------- 先准备好要用的Win10的镜像文件ISO ---------------- ...
- 重拾java中的 i++ 和 ++i
java中的 i++ 和 ++i 首先记着要点: 1.i++是先取值再运算. 2.++i是先运算后取值. 举个栗子: int y,x=3;y=(++x)+(++x); 则y=? 分析:先运算后取值,先 ...
- Thinkjs学习2—数据库的配置
以github登录认证为例,说明如何通过mvc三部分的配合,实现这个功能. 要实现的功能:首页判断用户是否登录,如果没有登录,显示登录界面,用户点击按钮进入github登录验证,并保存用户的信息,登录 ...
- python专题-函数式编程
函数式编程是使用一系列函数去解决问题,按照一般编程思维,面对问题时我们的思考方式是"怎么干",而函数函数式编程的思考方式是我要"干什么". 至于函数式编程的特点 ...
- C# 反射、与dynamic最佳组合
在 C# 中反射技术应用广泛,至于什么是反射.........你如果不了解的话,请看下段说明,否则请跳过下段.广告一下:希望我文章的朋友请关注一下我的blog,这也有助于提高本人写作的动力. 反射:当 ...
- 1000以内完全数(完美数)获取实现---基于python
"""题目: 如果一个数恰好等于它的因子之和,则称该数为"完全数" .各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的 ...
- vue 父子组件传参
父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对大小写不敏感,component ...