一、1、什么是数据

                描述事物的符号记录称为数据。 

      2、什么是数据库

                 存放数据的仓库,只不过这个仓库在计算机上存储设备上。

二、Mysql的介绍

       Mysql 就是一个socket的服务端

三、客户端软件
   mysql自带
   python模块

四、Mysql 的下载安装

1、Linux版本

  1. #二进制rpm包安装
  2. yum -y install mysql-server mysql
  1. 1.解压tar
  2. cd /software
  3. tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
  4. mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21
  5.  
  6. 2.添加用户与组
  7. groupadd mysql
  8. useradd -r -g mysql mysql
  9. chown -R mysql:mysql mysql-5.6.21
  10.  
  11. 3.安装数据库
  12. su mysql
  13. cd mysql-5.6.21/scripts
  14. ./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data
  15.  
  16. 4.配置文件
  17. cd /software/mysql-5.6.21/support-files
  18. cp my-default.cnf /etc/my.cnf
  19. cp mysql.server /etc/init.d/mysql
  20. vim /etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步
  21. 修改文件中的两个变更值
  22. basedir=/software/mysql-5.6.21
  23. datadir=/software/mysql-5.6.21/data
  24.  
  25. 5.配置环境变量
  26. vim /etc/profile
  27. export MYSQL_HOME="/software/mysql-5.6.21"
  28. export PATH="$PATH:$MYSQL_HOME/bin"
  29. source /etc/profile
  30.  
  31. 6.添加自启动服务
  32. chkconfig --add mysql
  33. chkconfig mysql on
  34.  
  35. 7.启动mysql
  36. service mysql start
  37.  
  38. 8.登录mysql及改密码与配置远程访问
  39. mysqladmin -u root password 'your_password' #修改root用户密码
  40. mysql -u root -p #登录mysql,需要输入密码
  41. mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #允许root用户远程访问
  42. mysql>FLUSH PRIVILEGES; #刷新权限

源码安装Mysql

  1. 1. 解压
  2. tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz
  3. mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需这样,很多脚本或可执行程序都会直接访问这个目录
  4.  
  5. 2. 权限
  6. groupadd mysql //增加 mysql 属组
  7. useradd -g mysql mysql //增加 mysql 用户 并归于mysql 属组
  8. chown mysql:mysql -Rf /usr/local/mysql // 设置 mysql 目录的用户及用户组归属。
  9. chmod +x -Rf /usr/local/mysql //赐予可执行权限
  10.  
  11. 3. 拷贝配置文件
  12. cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //复制默认mysql配置 文件到/etc目录
  13.  
  14. 4. 初始化
  15. /usr/local/mysql/scripts/mysql_install_db --user=mysql //初始化数据库
  16. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //复制mysql服务程序 到系统目录
  17. chkconfig mysql on //添加mysql 至系统服务并设置为开机启动
  18. service mysql start //启动mysql
  19.  
  20. 5. 环境变量配置
  21. vim /etc/profile //编辑profile,将mysql的可执行路径加入系统PATH
  22. export PATH=/usr/local/mysql/bin:$PATH
  23. source /etc/profile //使PATH生效。
  24.  
  25. 6. 账号密码
  26. mysqladmin -u root password 'yourpassword' //设定root账号及密码
  27. mysql -u root -p //使用root用户登录mysql
  28. use mysql //切换至mysql数据库。
  29. select user,host,password from user; //查看系统权限
  30. drop user ''@'localhost'; //删除不安全的账户
  31. drop user root@'::1';
  32. drop user root@127.0.0.1;
  33. select user,host,password from user; //再次查看系统权限,确保不安全的账户均被删除。
  34. flush privileges; //刷新权限
  35.  
  36. 7. 一些必要的初始配置
  37. 1)修改字符集为UTF8
  38. vi /etc/my.cnf
  39. 在[client]下面添加 default-character-set = utf8
  40. 在[mysqld]下面添加 character_set_server = utf8
  41. 2)增加错误日志
  42. vi /etc/my.cnf
  43. 在[mysqld]下面添加:
  44. log-error = /usr/local/mysql/log/error.log
  45. general-log-file = /usr/local/mysql/log/mysql.log
  46. 3) 设置为不区分大小写,linux下默认会区分大小写。
  47. vi /etc/my.cnf
  48. 在[mysqld]下面添加:
  49. lower_case_table_name=1
  50.  
  51. 修改完重启:#service mysql restart

源码安装mariadb

2、window版本

1.下载

  MySQL Community Server 5.7.16   ----   版本

  http://dev.mysql.com/downloads/mysql/  ----  下载地址
2、解压
     如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64
3、初始化
  cd c:\mysql-5.7.16-winx64\bin   ----  存放mysql的地方
 
     mysqld --inisialize-insecure
下图:

4、启动

      mysqld

如图:

5、启动MySQL客户端并连接MySQL服务

     由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码

看到下面这个界面就安装成功

 查看是否mysql启动 :

    tasklist |findstr mysql   

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

  1. 1 # 启动MySQL服务
  2. 2 net start mysql
  3. 3
  4. 4 # 关闭MySQL服务
  5. 5 net stop mysql

在windows下,为mysql服务指定配置文件

  1. #在mysql的解压目录下,新建my.ini,然后配置
  2. [mysqld]
  3. ;skip-grant-tables
  4. port=3306
  5. character_set_server=utf8
  6. #解压的目录
  7. basedir=E:\mysql-5.7.19-winx64
  8. #data目录
  9. datadir=E:\my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据
  10.  
  11. [client]
  12. port=3306
  13. 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;                                                          查看插入数据的内容

  1. mysqld --inisialize-insecure 初始化以没有密码的形式进入
  2.  
  3. mysqld 启动mysqld
  4.  
  5. tasklist |findstr mysqld 查看是否mysql启动
  6.  
  7. mysql -uroot -p 链接
  8.  
  9. quit 退出
  10.  
  11. tskill mysql 干掉mysql
  12.  
  13. mysqld --install winds 中安装mysqld
  14.  
  15. mysqladmin -uroot password 123 设置密码
  16.  
  17. mysqld --skip-grant-tables 跳过受限直接启动mysqld
  18.  
  19. update mysql.user set authentication_string=
  20. password(456) where user='root'and host='localhost';(5.7版本) 修改密码成功
  21.  
  22. update mysql.user set password=password(5.6版本)
  23.  
  24. flush privileges; 刷新权限
  25.  
  26. select user(); 查看当前用户
  27.  
  28. create user 'mqj'@'localhost' identfied by ''; 创建本机账号
  29.  
  30. create user 'egon'@'%' identfied by '' 创建远程账号
  31.  
  32. create user 'wupeiqi'@'192.168.20.%' identified by '' 创建远程网端账号
  33.  
  34. mysql -h192.168.20.99 -ualex -p123 远程链接
  35.  
  36. 数据库文件夹的的操作
  37.  
  38. create database db1 charset utf8; 增加db1文件夹
  39.  
  40. show databases ; 查看所有数据库
  41.  
  42. show create database db1; 查看db1文件夹
  43.  
  44. drop database db1; 删除db1文件夹
  45.  
  46. alter database db1 charset gbk; 修改db1编码
  47.  
  48. 操作文件(表)
  49. 切换到文件下:
  50. use db2 切换文件夹
  51.  
  52. \c 取消命令
  53.  
  54. create table t1(id int,name char(10)); 创建表
  55.  
  56. show tables; 查看当前文件下的所有表
  57.  
  58. show create table t1; 查看表
  59.  
  60. alter table t1 add age int; 增加字段
  61.  
  62. alter table t1 modify name char(12); 改表中的名字字符
  63.  
  64. desc t1; 查看表结构
  65.  
  66. drop table t1; 删除表
  67.  
  68. 操作文件的一行行内容(记录)
  69.  
  70. insert into db1.t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 增加记录
  71.  
  72. select * from t1; 查看所有字段对应的值
  73.  
  74. select * from t1 where id>2; 查看id大于2的字段
  75.  
  76. select name from t1; 查看单个字段
  77.  
  78. update t1 set name='SB' where id=3; 改里面的记录
  79.  
  80. delete from t1 where id=3; 删除一条记录
  81.  
  82. 对于清空表的记录有两种方式,但是推荐使用后者
  83. delete from t1;
  84. truncate t1; #当数据量大的时候下,删除速度快 整体删除
  85.  
  86. 自增id
  87. create table t2(id int primary key,name char(10));
  88. create table t3(id int not null unique,name char(10));
  89. create table t2(id int primary key auto_increment,name char(10));
  90.  
  91. 补充
  92. create table t6 select * from t5 拷贝表
  93.  
  94. create table t7 select * from t5 where 1=2 拷贝表结构
  95.  
  96. alter tablet7 modify id int primary key auto_increment 改表结构
  97.  
  98. delete t7 set name='' ; 删除记录
  99.  
  100. select database() 查看当前在那个文件夹下
  101.  
  102. insert into t1(id) values(1) 插数据的方式
  103.  
  104. select * from t1; 查看插入数据的内容
  105.  
  106. select * from t1;
  107.  
  108. 数据类型
  109. 1、数字(默认都是有符号,宽度指的是显示宽度,与存储无关)
  110. 1tinyint [unsigned][zerofill] (1个字节存)
  111. 有符号:
  112. -128~~127
  113. 无符号:
  114. 0~~255
  115. 2 int [unsigned][zerofill] 4个字节存)
  116. 有符号:
  117. -2147483648~~2147482647
  118. 无符号:
  119. 0~~4294967295
  120. 3bigint[unsigned][zerofill] 8个字节存)
  121. 有符号:
  122. -9223372036854775808~~9223372036854775808
  123. 无符号:
  124. 0~~494967295
  125. 2、字符(宽度指的是字符个数 与存储有关):
  126. char :定长(简单粗暴,不够则凑够固定长度存放起来,浪费空间,存取速度快)
  127. varchar 变长(精准,计算除待存放的数据长度,节省空间,存取速度慢)
  128. 3、日期
  129. #注册时间
  130. datatime 2017-09-06 10:39:46
  131. #出生年月日 ,开学时间
  132. data:2017-09-06
  133. #聊天记录,上课时间
  134. time:10:39:46
  135. #出生年
  136. year:2017
  137. 4、枚举与集合
  138. enum枚举:规定一个范围,可有多个值,但是为该字段船只是,只能去规定范围中的一个
  139. set集合:规定一个范围,可有多个值,但是为该字段船只是,只能去规定范围中的一个或多个
  140.  
  141. 1
  142. 整型测试
  143. create table t1(id tinyint);
  144. create table t2(id int);
  145. create table t3(id bigint) ;
  146.  
  147. #测试
  148. create table t4(salary float(5,2));
  149.  
  150. insert into t4 values(3.735);
  151. insert into t4 values(3.735684);
  152.  
  153. 2char varcahr测试
  154. create table t6(name char(4));
  155. insert into t6 values('alex')
  156. insert into t6 values('欧德博爱');
  157. insert into t6 values('艾利克斯');
  158.  
  159. create table t7(x char(5),y varchar(5));
  160. insert into t7 values('addd','dsds') #char_length:查看字符长度
  161. insert into t7 values('你好啊''好你妹')#char_length:查看字符长度
  162.  
  163. 了解
  164. insert into t7 values('你好啊''好你妹')#length:查看字节长度
  165. select char_length(x),char_length(y) from t7;
  166.  
  167. 注意两点:
  168. insert into t7 values('abc','abc');#length:查看字节长度
  169. select * from t7 where y='abc '; #去掉末尾的空格然后去比较
  170.  
  171. 3、日期
  172. create table student(
  173. id int ,
  174. name char(5),
  175. born_date date,
  176. born_year year,
  177. reg_time datetime,
  178. class_time time
  179. );
  180. insert into student values(1,'alex',now(),now(),now(),now());
  181. insert into student values(1,'alex','2017-09-06','','2017-09-06 10:09:36','09:06:36');
  182.  
  183. 4、枚举与集合
  184. create table student1(
  185. id int primary key auto_increment,
  186. name char(5),
  187. sex enum('male','female'),
  188. hobbies set('music','read','coding')
  189. );
  190.  
  191. insert into student1(name,sex,hobbies) values('egon','male','music,read,coding');
  192.  
  193. 1 简单查询
  194. select * from employee;
  195. select name,salary from employee;
  196.  
  197. 2 where条件
  198. select name,salary from employee where salary > 10000;
  199. select name,salary from employee where salary > 10000 and salary < 20000;
  200. select name,salary from employee where salary between 10000 and 20000;
  201. select name,salary from employee where salary not between 10000 and 20000;
  202.  
  203. select name,salary from employee where salary = 10000 or salary = 20000 or salary = 30000;
  204. select name,salary from employee where salary in (10000,20000,30000);
  205.  
  206. select * from employee where salary = 10000 or age = 18 or sex='male';
  207.  
  208. select * from employee where post_comment is Null;
  209. select * from employee where post_comment = Null;
  210. select * from employee where post_comment is not Null;
  211.  
  212. select * from employee where name like '%n%';
  213.  
  214. select * from employee where name like 'e__n';
  215.  
  216. 3 group by分组
  217. mysql> select depart_id,group_concat(name) from employee group by depart_id;
  218. +-----------+--------------------------------------------------------------+
  219. | depart_id | group_concat(name) |
  220. +-----------+--------------------------------------------------------------+
  221. | 1 | egon,alex,wupeiqi,yuanhao,liwenzhou,jingliyang,jinxin,成龙 |
  222. | 2 | 歪歪,丫丫,丁丁,星星,格格 |
  223. | 3 | 张野,程咬金,程咬银,程咬铜,程咬铁 |
  224. +-----------+--------------------------------------------------------------+
  225. 3 rows in set (0.00 sec)
  226.  
  227. mysql> select depart_id,count(id) from employee group by depart_id;
  228. +-----------+-----------+
  229. | depart_id | count(id) |
  230. +-----------+-----------+
  231. | 1 | 8 |
  232. | 2 | 5 |
  233. | 3 | 5 |
  234. +-----------+-----------+
  235. 3 rows in set (0.01 sec)
  236.  
  237. mysql> select depart_id,group_concat(id) from employee group by depart_id;
  238. +-----------+------------------+
  239. | depart_id | group_concat(id) |
  240. +-----------+------------------+
  241. | 1 | 1,2,3,4,5,6,7,8 |
  242. | 2 | 9,10,11,12,13 |
  243. | 3 | 14,15,16,17,18 |
  244. +-----------+------------------+
  245. 3 rows in set (0.00 sec)
  246.  
  247. mysql> select depart_id,count(id) from employee group by depart_id;
  248. +-----------+-----------+
  249. | depart_id | count(id) |
  250. +-----------+-----------+
  251. | 1 | 8 |
  252. | 2 | 5 |
  253. | 3 | 5 |
  254. +-----------+-----------+
  255. 3 rows in set (0.00 sec)
  256.  
  257. mysql> select depart_id,max(salary) from employee group by depart_id;
  258. +-----------+-------------+
  259. | depart_id | max(salary) |
  260. +-----------+-------------+
  261. | 1 | 1000000.31 |
  262. | 2 | 4000.33 |
  263. | 3 | 20000.00 |
  264. +-----------+-------------+
  265. 3 rows in set (0.00 sec)
  266.  
  267. mysql> select depart_id,min(salary) from employee group by depart_id;
  268. +-----------+-------------+
  269. | depart_id | min(salary) |
  270. +-----------+-------------+
  271. | 1 | 2100.00 |
  272. | 2 | 1000.37 |
  273. | 3 | 10000.13 |
  274. +-----------+-------------+
  275. 3 rows in set (0.00 sec)
  276.  
  277. mysql> select depart_id,sum(salary) from employee group by depart_id;
  278. +-----------+-------------+
  279. | depart_id | sum(salary) |
  280. +-----------+-------------+
  281. | 1 | 1070200.64 |
  282. | 2 | 13001.47 |
  283. | 3 | 84000.13 |
  284. +-----------+-------------+
  285. 3 rows in set (0.00 sec)
  286.  
  287. mysql> select depart_id,avg(salary) from employee group by depart_id;
  288. +-----------+---------------+
  289. | depart_id | avg(salary) |
  290. +-----------+---------------+
  291. | 1 | 133775.080000 |
  292. | 2 | 2600.294000 |
  293. | 3 | 16800.026000 |
  294. +-----------+---------------+
  295. 3 rows in set (0.00 sec)

 (2)创建四个表,分别使用innodb,myisam,memory,

          blackhole存储引擎,进行插入数据测试

  1. MariaDB [db1]> create table t1(id int)engine=innodb;
  2. MariaDB [db1]> create table t2(id int)engine=myisam;
  3. MariaDB [db1]> create table t3(id int)engine=memory;
  4. MariaDB [db1]> create table t4(id int)engine=blackhole;
  5. MariaDB [db1]> quit
  6. [root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据
  7. db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm
  8.  
  9. #memory,在重启mysql或者重启机器后,表内数据清空
  10. #blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录
  1.  

数据库Mysql的安装及操作---数据引擎的更多相关文章

  1. Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递

    http://niuzhenxin.iteye.com/blog/1706203   Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...

  2. [mysql]brew 安装 配置 操作 mysql(中文问题)

    mac 下卸载mysqldmg mac下mysql的DMG格式安装内有安装文件,却没有卸载文件--很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stac ...

  3. 数据库 —— mySQL 的安装

    [转载Link]MySQL-5.6.24免安装版配置方法,有需要的朋友可以参考下. 1. 下载MySQL Community Server 5.6.24 2. 解压MySQL压缩包 将以下载的MySQ ...

  4. 数据库——MySQL及安装

    what's the MySQL MySQL是一个关系型数据库管理系统,MySQL 是目前最流行的关系型数据库管理系统之一,在 WEB 应用方面MySQL是最好的 RDBMS (Relational ...

  5. 数据库/MySQL的安装

    来源:https://www.cnblogs.com/liubing8/p/11431382.html mysql的安装.启动和基础配置 —— windows版本 1.下载 第一步:打开网址,http ...

  6. 数据库MySql的安装

    1.MySQL概述 MySQL最初是由“MySQL AB公司”开发的一套关系型数据库管理系统(RDBMS-Relation DataBase Management System).MySQL不仅是最流 ...

  7. 数据库设计_ERMaster安装使用_PowerDesigner数据设计工具

    数据库设计 1. 说在前面 项目开发的流程包括哪些环节 需求调研[需求调研报告]-- 公司决策层 (1) 根据市场公司需求分析公司是否需要开发软件来辅助日常工作 (2) 公司高层市场考察,市场分析,决 ...

  8. linux篇-linux数据库mysql的安装

    1数据库文件放到opt下面 2赋予权限775 3运行脚本 4运行成功 5数据库操作 密码修改并刷新 权限修改,允许外部设备访问 6工具连接 7附录 1.显示当前数据库服务器中的数据库列表: mysql ...

  9. 【MySQL】数据库 --MySQL的安装

    本篇教程主要讲解在CentOS 6.5下编译安装MySQL 5.6.14! 1.卸载旧版本: 使用下面的命令检测是否安装有MySQL server <span style="font- ...

随机推荐

  1. css的定位和浮动

    定位 浮动 float代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  2. 大咖云集!IMWebConf 2017 前端大会即将在深圳盛大开幕

    2017年火热的夏季,一年一度的IMWebConf强势来袭!9月16日,深圳科兴国际会议中心,我们将全心全意打造一场前端盛宴,恭候各位的光临. 作为一名前端老鸟,笔者有幸也参与了本次的大会的主题分享& ...

  3. Druid使用记录

    最近项目稳定下来,就像折腾一下看看系统的运行情况,但是我们搞java的毕竟不是专业运维,看看数据库的运行情况就ok了. 1 Druid介绍 官方地址 https://github.com/alibab ...

  4. javaScript 设计模式系列之三:代理模式

    介绍 代理模式为其他对象提供一种代理以控制对这个对象的访问. 根据代理模式的使用目的不同,代理模式又可以分为多种类型: 远程代理(Remote Proxy) 虚拟代理(Virtual Proxy)如需 ...

  5. [js高手之路]性能优化技巧 - 缓存与函数重载实战

    所谓缓存,通俗点讲就是把已经做过的事情结果先暂时存起来,下次再做同样的事情,不用再重新去做,只要把之前的存的结果拿出来用即可,很明显大大提升了效率.他的应用场景非常广泛.如: 1.缓存ajax结果,大 ...

  6. HTML <td> 标签的 colspan 属性

    HTML <td> 标签的 colspan 属性 实例 表格单元横跨两列的表格: 浏览器支持 所以浏览器都支持 colspan 属性. 没有浏览器支持 colspan="0&qu ...

  7. Java架构师系统培训高并发分布式电商实战activemq,netty,nginx,redis dubbo shiro jvm虚拟机视频教程下载

    15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 ...

  8. python进阶学习(四)

    在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制(或其它类型)的数据.它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命期.进程( ...

  9. 为什么a标签中使用img后,高度多了几个像素?

    <li><a href="#"><img src="images/audio.jpg" alt="">& ...

  10. JVM内存模型与GC算法

    1.JVM内存模型 JVM内存模型如上图,需要声明一点,这是<Java虚拟机规范(Java SE 7版)>规定的内容,实际区域由各JVM自己实现,所以可能略有不同.以下对各区域进行简短说明 ...