Mysql之数据库的安装与基本操作
## 数据库
-
数据库是按照数据结构来组织、存储和管理数据的集合,可以对所存储的数据进行增、删、改、查等操作
-
常用数据库
-
关系型数据库(SQL)
-
Access
-
MySQL
-
MariaDB
-
SqlServer
-
Oracle
-
-
非关系型数据库(NoSQL)
- redis
- mongodb
- Cassandra
- memcached
-
-
相关名词
-
DBMS:数据库管理系统,如mysql等
-
DBS:数据库系统,由数据库、数据库管理系统、数据库管理员等构成
-
DBA:数据库管理员
-
DB:数据库,是统一管理的相关数据的集合
-
表:每个表就是一个关系,是记录数据和关系的容器
-
行(row):每一行称为一个记录或元组
-
列(column):每一列称为一个属性
-
域:数据的取值范围
-
主键:可以唯一标识记录的属性
-
索引:单独存储的能够快速进行查询的数据项
-
Mysql
-
最流行的开源关系型数据库系统,全球排名前 10 的 Web 站点中有 9 个使用该数据库
-
由瑞典公司MySQL AB公司开发,合伙人David Axmark, Allan Larsson 和 Michael Widenius
-
美国SUN公司于2008年收购MYSQL,美国ORACLE公司于2010年收购SUN公司,当前MySQL属于ORACLE 公司
-
多种编程语言支持mysql(C、C++、JAVA (JDBC)、.NET (ODBC)、PHP、PYTHON、PERL)
-
发行版本分类
- 社区版 (无需注册免费下载)
- MySQL Community Edition (GPL)
- MySQL Cluster (GPL)
- 企业版 (可以注册后免费下载,商业收费)
- MySQL Enterprise Edition
- MySQL Cluster CGE
- 又细分为Alpha版、Beta版、RC版、GA版
- Alpha 版:Alpha版一般只在公司内部对产品进行测试,不对外公开。
- Beta版:Beta版一般是完成功能的开发和所有的测试工作之后的产品,提供给用户体验与测试,以便更全面地测试软件的不足之处或存在的问题
- RC版:正式发布前的版本,对Beta版进行修复和改进的版本
- GA版:GA版是软件产品正式发布的版本,也称生产版本的产品
- 社区版 (无需注册免费下载)
-
常用链接
Centos7 下mysql的安装
-
官网下载安装包并上传至服务器
![image-20191125151643869]()
-
安装所需依赖包
![image-20191125151816543]()
-
解压缩
![image-20191125151856582]()
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -
使用rpm命令或yum命令进行安装
![image-20191125152752931]()
yum install ./mysql-community-{client,server,common,libs}-*若出现如下错误可采取卸载mariadb-devel的方法卸载mariadb-devel
![image-20191125152813942]()
![image-20191125153017883]()
-
启动服务
![image-20191125153432297]()
- 常用操作
- systemctl start mysqld 启动mysql
- systemctl stop mysqld 停止mysql
- systemctl restart mysqld 重新启动mysql
- systemctl status mysqld 查看mysql状态
- systemctl enable mysqld mysql开机自启
- systemctl disable mysqld mysql开机不启动
- 常用操作
-
登录mysql并修改密码
- 获取生成的随机密码
![image-20191125153816697]()
- 登录(输入生成的随机密码登录)
![image-20191125153937547]()
- 修改新密码
![image-20191125154301788]()
- 获取生成的随机密码
-
mysql默认密码复杂度规则(mysql5.6.6及以后的版本使用validate_password进行密码强度验证)
![image-20191125154901050]()
show variables like "%password%"; +----------------------------------------+-----------------+ | Variable_name | Value | +----------------------------------------+-----------------+ | default_password_lifetime | 0 | | disconnect_on_expired_password | ON | | log_builtin_as_identified_by_password | OFF | | mysql_native_password_proxy_users | OFF | | old_passwords | 0 | | report_password | | | sha256_password_auto_generate_rsa_keys | ON | | sha256_password_private_key_path | private_key.pem | | sha256_password_proxy_users | OFF | | sha256_password_public_key_path | public_key.pem | | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | #用于验证密码强度的字典文件路径 | validate_password_length | 8 | #密码长度最小8位 | validate_password_mixed_case_count | 1 | #至少包含1个大写字母1个小写字母 | validate_password_number_count | 1 | #至少包含1个数字 | validate_password_policy | MEDIUM | #密码强度检查等级0:LOW,1:MEDIUM(默认值),2:STRONG | validate_password_special_char_count | 1 | #至少包含一个特殊字符 +----------------------------------------+-----------------+ #使用set global 变量名=值;进行修改(临时生效) #修改配置文件/etc/my.cnf文件永久保存 -
关闭 validate_password 密码验证(有风险)
![image-20191125155930984]()
![image-20191125160240244]()
![image-20191125160331753]()
再次修改密码,使用空密码依然被允许
![image-20191125160500093]()
刷新使修改生效
![image-20191125160737112]()
-
修改数据库默认字符集支持中文
![image-20191125161034800]()
![image-20191125161010553]()
![image-20191125161055107]()
![image-20191125161149255]()
-
root密码遗忘后找回的方法
![image-20191125161323584]()
![image-20191125161514598]()
systemctl set-environment MYSQLD_OPTS='--skip-grant-tables --skip-networking' #设置临时跳过密码验证登录,--skip-networking可省略若设置关闭validate_password,需要注释该设置
![image-20191125161715578]()
![image-20191125161744617]()
![image-20191125161820459]()
即可无密码登录
![image-20191125161852934]()
更改密码
![image-20191125162213200]()
-
修改mysql登录提示符
![image-20191125190625003]()
![image-20191125190554632]()
export MYSQL_PS1="\u@\h[\d]>"![image-20191125190650126]()
![image-20191125190900715]()
(如果只想修改个别用户的登录提示符,则在对应用户的环境变量文件中修改即可,windows环境同样适用)
-
允许用户远程登录
-
允许用户远程登录
![image-20191125204506034]()
-
关闭防护墙或添加对应规则
![image-20191125204935586]()
或
![image-20191125205056802]()
mysql -u root -p rename user root@localhost to root@'%'; select user,host from mysql.user; firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
-
-
用户远程登录
![image-20191125210641642]()
-
2003错误
![image-20191125210214763]()
问题: 配置了skip_networking或者bind_address
解决方法:
![image-20191125210327230]()
![image-20191125210413132]()
-
1045错误
![image-20191125210440020]()
问题:输入密码错误
win10下mysql的安装
-
从官网下载合适的安装包
![image-20191125142333236]()
-
解压缩并放置指定路径
![image-20191125142411464]()
![image-20191125142420049]()
![image-20191125143108492]()
-
添加环境变量(windows10)
-
右击我的电脑,选择属性
![image-20191125143151601]()
-
选择高级系统设置
![image-20191125143229967]()
-
选择环境变量
![image-20191125143314483]()
-
选择path变量并单击编辑命令
![image-20191125143456141]()
-
添加mysql的环境变量并保存
![image-20191125143619832]()
-
单击确认进行保存(需要在环境变量页面单击确认才真正保存)
![image-20191125185510827]()
-
-
为mysql添加配置文件my.cnf
![image-20191125143911249]()
![image-20191125144624217]()
[mysqld] basedir=D:/Program/mysql5.7 #mysql所在路径 datadir=D:/Program/mysql5.7/data #data文件所在目录 character-set-server=utf8 #设置默认字符集 -
cmd中运行安装命令进行安装(需要管理员权限,需要安装Visual C++2013)
![image-20191125145004964]()
mysqld --install MySQL #进入mysql的bin目录下执行安装命令若被杀毒软件阻止设置允许或关闭杀毒软件
-
初始化数据库
![image-20191125145805573]()
mysqld --initialize-insecure #初始化数据库 -
启动服务(win+R打开运行执行services.msc打开服务窗口)
![image-20191125150017474]()
![image-20191125150036074]()
-
连接数据库(首次进入root用户密码为空)
![image-20191125150127142]()
-
更改root用户密码
![image-20191125150410651]()
alert user root@localhost identified by '123456'; #修改密码为123456,下次登录时使用密码登录![image-20191125150534564]()
-
使用图形化软件连接(navicat)
![image-20191125150910173]()
![image-20191125150927046]()
![image-20191125151034530]()
![image-20191125151043837]()
![image-20191125151059074]()
![image-20191125151121609]()
数据库基本操作
-
mysql 用于连接数据库
- -u USERNAME #指定用户或--user=USERNAME
- -h HOST #指定连接主机 或 --host=HOST
- -p [PASSWD] #用户密码,省略PASSWD时将会以隐式方式输入密码 或--PASSWORD=PASSWD
![image-20191125193206398]()
-
status或\s命令查看服务器当前状态
![image-20191125193250902]()
或
![image-20191125200646840]()
-
quit或exit命令退出mysql
![image-20191125193346253]()
![image-20191125193416835]()
-
show databases命令查看所有数据库
![image-20191125193957305]()
-
use命令使用(进入)数据库
![image-20191125194117077]()
-
show tables 命令查看数据库中的表
![image-20191125194201559]()
或
![image-20191125194311624]()
-
查看正在使用的数据库(所处的数据库)
![image-20191125194409324]()
或
![image-20191125194445211]()
-
查看表中的列(属性)
![image-20191125194607305]()
-
查看表中的记录
![image-20191125194707312]()
或使用\G使用另一种显示格式
![image-20191125194737161]()
-
查看数据库存放位置
![image-20191125195603554]()
-
创建数据库
- 命令:CREATE DATABASE [IF NOT EXISTS] DB_NAME;
- IF NOT EXISTS 表示如果表已经存在则不再重复创建
![image-20191125200112819]()
- IF NOT EXISTS 表示如果表已经存在则不再重复创建
- 命令:CREATE DATABASE [IF NOT EXISTS] DB_NAME;
-
删除数据库
- 命令:DROP DATABASE DB_NAME;
![image-20191125200311280]()
- 命令:DROP DATABASE DB_NAME;
-
查看当前连接用户
![image-20191125200417611]()
-
查看当前服务器日期和时间
![image-20191125200458540]()
-
帮助命令
![image-20191125200546333]()
或
![image-20191125200604444]()
-
\d修改结束符(默认分号)
![image-20191125200751981]()
-
tee命令将屏幕输出结果另存到指定文件,结束时输入notee
![image-20191125200929088]()
-
\c取消当前语句输入
![image-20191125204054043]()
-
system COMM 执行操作系统命令
![image-20191125204155983]()


























































































浙公网安备 33010602011771号