MySQL数据库安装和启动
目录
一、数据库介绍
-
什么是数据库
就是存储数据的仓库,也可以说是依照存储数据的介质
-
为什么要使用数据库
数据库出来之前使用的是Excel来进行管理数据的
而Excel不能满足我们的一些需求,如:
- 管理不了大量的数据(10W量级的数据)
- 不能并发操作同一个数据库表格
- 对大量的数据不支持高级操作,比如:分组,连表等。
二、数据库的分类
1. 关系型数据库系统
- 关系型数据库系统就是对每一列的数据的数据类型都会有约束的数据库系统。
2. 当下的关系型数据库系统
- PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。可扩展性非常高。
- MySQL , mariadb ——》 两个都是同一个公司的产品,都免费,而MySQL 用的比较多
- SQLserver ——》微软的产品,大学、政府用的较多,收费
- Oracle ——》甲骨文产品,收费,金融公司,阿里用的较多
- sqlite ——》小型文件数据库,自己玩玩
3. 当下的非关系型数据库系统
存储数据的方式:类似字典的存储,值可以是任意数据类型。
{"name":'zekai'}
{"name":12}
{"name":[]}
{"name":{}}
- memcache ——》十年前的产品 (新浪博客)
- MongoDB ——》文档型数据库系统,把数据放在内存中,但是没有解决内存数据断电即消失的问题。
- Redis ——》微博使用 ,将数据保存在内存中,而且还解决了内存数据断电即消失的问题。是现在非关系型数据库系统中主流使用的一个。
4. 关系型和非关系型数据库系统的区别
- 关系型数据库系统:把数据存在硬盘中
- 非关系型数据库系统:把数据存在内存中
三、MySQL的架构
-
MySQL的架构类似socket的客户端和服务端
-
流程:
-
MySQL服务端先启动,监听在一个特定的端口(默认3306)
-
MySQL客户端连接服务端
-
MySQL客户端就可可以发送相关的操作命令,取操作服务端存储的数据。
-
四、MySQL的安装和启动
1. windows下安装MySQL:
-
下载:
去官网下载MySQL,MySQL官网 ,下载 MySQL Community Server 5.7.28 。注意:对于数据库系统这样关系到非常重要的数据的应用程序,我们一般不使用最新版本。
-
添加环境变量:
把解压后的文件移动到自己想存放的路径下。再将文件中的bin文件夹的路径添加到系统环境变量PATH中。
-
初始化:
打开command终端,输入
mysqld --initializw-insecure --console -
启动MySQL服务:
输入
mysqld启动MySQL服务 ,之后MySQL服务端开始监听。 -
启动MySQL客户端并连接MySQL服务
另外开启一个command终端,输入
mysql -u root -p,初始密码为空,直接回车。 -
成功启动MySQL
2.制作windows的服务
- 在上面的启动MySQL服务中,启动服务之后,command就会阻塞住,而且每次使用MySQL都要启动一次MySQL服务,非常麻烦。所以我们制作一个windows的服务,让MySQL服务一直启动。
- 制作方法:打开终端,输入解压文件中,bin文件下的mysqld的路径,用双引号引住,再空格,后面加上--install 。如
"D:\mysql-5.7.28\bin\mysqld" --install
3. 修改MySQL密码
(1)记得原密码时修改密码
以管理员启动终端:
C:\Windows\system32>mysqladmin -uroot -p "原密码" password "新密码"
出现的错误
C:\Windows\system32>mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
如果出现上述错误,代表密码输入错误
(2)不记得原密码时修改密码
#1 关闭mysqld的服务
#2 在cmd中执行:mysqld --skip-grant-tables ===》 不用密码就可以登录,绕过密码验证的权限
#3 在cmd中执行:mysql ===》 mysql -uroot -p
#4 执行如下sql指令:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges; (一定要有这个操作)
#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新启动mysql服务
4. 常用参数
-u : user 用户名
-p : password 密码
-h : host 主机名或ip mysql -uroot -p -h 192.168.1.10
-P : port 默认是3306 mysql -uroot -p -h 192.168.1.10 -P 3307
5. linux下安装MySQL-5.7版本
# 系统为Centos7.5
# 数据库版本为mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
# 安装步骤:(需要root进行安装操作)
1. 解压到当前目录
[root@linux001 mysql]# tar -xzvf /data/software/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
2. 移动解压的文件并改名为mysql
[root@linux001 mysql]# mv mysql-5.7.38-linux-glibc2.12-x86_64 /usr/local/mysql
3. 创建mysql用户和mysql用户组
[root@linux001 mysql]# groupadd mysql
[root@linux001 mysql]# useradd -r -g mysql mysql
3.1 查看是否创建用户和用户组成功
[root@linux001 mysql]# id mysql
4. 进入mysql目录,并创建data目录
[root@linux001 mysql]# cd /usr/local/mysql
[root@linux001 mysql]# mkdir data
4. 修改mysql目录的所有者和所属组(注意:上一步创建的data目录的所有者和所属组一定要为mysql,有时候会遇到安装失败,要删除data目录,删除后需要重新执行本命令)
[root@linux001 mysql]# chown -R mysql.mysql /usr/local/mysql
5. 初始化数据库
(**记住初始化完成后最后一行生成的root账户的密码,给后面登录用。例:A temporary password is generated for root@localhost: O=pO1WgND,Ta , O=pO1WgND,Ta 就是初始密码**)
[root@linux001 mysql]# bin/mysqld --initialize --user=mysql
6. 配置service命令(复制support-files目录下的mysql.service脚本到/etc/init.d目录)
[root@linux001 mysql]# cp support-files/mysql.server /etc/init.d/mysql
7.启动MySQL
[root@linux001 mysql]# service mysql start
若报错找不到pid文件,则先执行一下命令再启动 chown -R mysql.mysql /usr/local/mysql
8.设置MySQL的root新密码
[root@linux001 mysql]# bin/mysqladmin -h localhost -u root password '新密码' -p'前面的初始密码'
返回结果即为修改成功:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
9.登录,设置远程连接
[root@linux001 mysql]# bin/mysql -uroot -p
9.0 若第八步未修改密码,则登录成功后也可以修改,否则,忽略本条(flush privileges;作用是:刷新权限,立即生效)
mysql> update mysql.user set authentication_string=password('新密码') where user='root';
mysql> flush privileges;
9.1登录成功后,开始使用数据库
mysql> use mysql;
9.2查询user表
mysql> select host,user from user;
9.3 将host设置为通配符%(host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置)
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;
10. 创建新用户,并为其添加数据库权限
10.1 创建新用户
mysql> CREATE USER 'jt'@'localhost' IDENTIFIED BY 'jt用户的登录密码';
10.2 为用户添加数据库权限(all 可以替换为 select,delete,update,create,drop)
mysql> grant all privileges on 数据库名.* to '用户名'@'用户的host';
11. 修改MySQL的配置
在/etc/ 目录下,新建my.cnf 文件
在里面配置数据库的各种配置,端口、超时时间、连接数、日志设置、主从同步等等。可在网上直接复制粘贴一个下来,根据自己的需求修改其中的配置。然后重启MySQL服务,命令: service mysql restart
五、数据库的三大范式
六、初识MySQL
注意:任何sql语句在结尾都要加上英文的分号,而在使用 use这一sql语句时可加可不加
1. 操作数据库
增:
create database 数据库名称 charset utf8;
命名规范:
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
show create database 数据库名;
删:
drop database 数据库名称;
改:
删除再添加
如果数据库中有数据的话,直接drop会导致数据库中的数据丢失
在线上环境,不能够直接删除数据, 在删除之前,需要进行备份
查:
show databases;
使用数据库:
use 数据库名;

浙公网安备 33010602011771号