100款禁用网站,家装效果图设计网站,模板式网站建设,杭州seo营销公司centos 7 版本当中安装 mysql
安装与卸载中#xff0c;⽤⼾全部切换成为root#xff0c;⼀旦 安装#xff0c;普通⽤⼾是可以使用的。
卸载不需要的环境
首先#xff0c;在安装之前#xff0c;要先确定你当前系统当中是否已经有了mysql 的环境#xff0c;如果你不想卸…centos 7 版本当中安装 mysql
安装与卸载中⽤⼾全部切换成为root⼀旦 安装普通⽤⼾是可以使用的。
卸载不需要的环境
首先在安装之前要先确定你当前系统当中是否已经有了mysql 的环境如果你不想卸载继续用也可以当然也可以卸载之后再重新安装。
查看当前环境当中是否有 mqsql 上述当中的 mariadb 其实就是 mysql只不过是mysql 的一个开源分支。也是可以正常使用的只要是 sql 的其实使用方式都是差不多的。
使用下述 systemctl 命令 关闭 mysql 服务 使用 rpm -pa 查看 使用 yum 下载的安装包使用 grep 过滤出 mqsql 安装包 你可以一个一个卸载安装包但是这样太麻烦。可以使用 xargs 命令可以把 安装包列表以xargs 的形式 喂给卸载程序 就可以批量话卸载 验证卸载 如果上述的第一个路径当中的 my.cnf 文件已经被删除了说明已经卸载成功了第二个路径是上一个 mysql 残留下来的数据这个数据没被删除也是在情理之中的。 配置 mysql yum 源 获取mysql官⽅yum源 http://repo.mysql.com/
通过上述的网址获取到 yum 源资源。 在上述网站当中有很多的版本首先要确定自己的版本是多少的 我上述的版本是 centos 7.9.xx 的所以尽量选择相近的版本的 yum 源进行下载。 最常用的版本就是 mqsql57在最后后面带上的 el7-11 的意思就是 centos 7.11 版本对应下载即可。 下载到 windows 桌面当中就可以在 linux 系统当中使用 rz 命令来备份到 Linux 当中 像上述一样选择 我们下载的安装到 Linux 当中 查看当中系统当中的 yum 源 在我们上述安装之后可能不会有 mysql 的yum源我们使用 rpm -ivh 上述mysql 安装包相当于有安装也就是解压并拷贝 查看mysql 在这个 yum 源当中就有 对应的版本 和 一些工具。
我们按照自己的需求安装即可。但是其实会自动根据我们所选择的 yum 源和当前我们的系统自己选择合适的版本。 测试 安装是否成功 说明当前的 yum 源已经生效了。
安装 mysql服务
yum install -y mysql-community-server
测试安装 需要保证安装之后由上述文件。 还需要有 mysqld 这个 mysql 服务端的程序。 还需要有 mysql 这样的服务客户端。 启动 mysql netstat -nltp 查看 已经有 这 mysql 的服务端口号了。 mysql 的登录
登录 mysql 用户 此时我们发现登录不上去。 解决方法有三个 获取临时root密码 grep temporary password /var/log/mysqld.log 可以在上述 的 mysqld.log 文件当中查看密码。这个 方式在高版本可能不能用了 如果上述查阅到了密码 #获取临时root密码
[whbVM-0-3-centos 9.9]$ sudo grep temporary password /var/log/mysqld.log
2021-04-12T03:23:46.153263Z 1 [Note] A temporary password is generated for
rootlocalhost: yLMalT:v5l*
#使⽤临时密码登录[whbVM-0-3-centos 9.9]$ mysql -uroot -p
Enter password:
1 2 3 4 5 6 7 8#判断修改密码时候新密码是否符合当前的策略不满⾜报错不让修改关闭它
#安全强度默认为中即1要求必须包含 数字、符号、⼤⼩写字⺟⻓度⾄少为8位
mysql set global validate_password_policy0;
Query OK, 0 rows affected (0.00 sec)#密码最⼩⻓度
mysql set global validate_password_length1;
Query OK, 0 rows affected (0.00 sec)
#修改本地登录密码暂不授权远程登录mysql ALTER USER rootlocalhost IDENTIFIED BY qwerwu.888;
Query OK, 0 rows affected (0.00 sec)
mysql FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)#如果你安装的最新的mysql没有所谓的临时密码root默认没有密码 # 如果你安装的最新的mysql没有所谓的临时密码root默认没有密码 # 试着直接 client 登陆⼀下 vim /etc/my.cnf 打开mysql配置⽂件
然后在[mysqld]最后⼀栏配置(不知道是什么就放在配置⽂件最后) 加⼊: skip-grant-tables 选项,并保存退出 skip-grant-tables 的意思就是 跳过 线权不需要验证跳过认证环节直接登录。 如果你在修改的过程当中已经启动了 mysql 的服务那么你需要重启一下 mysql 的服务上述配置文件当中修改的信息才会生效 上述使用的是 restart 这个命令的效果其实是 stop start 也就是说上述命令相当于是下述的两个命令 经过上述的步骤之后你就可以免密登录 root 账户了但是当你在登录之时还是会让你输入密码不用担心此时直接回车就可以了。如下所示此时我们就登录上 mysql 了 简单配置配置文件
[mysql]
#default-character-setutf8 // 配置编码格式 因为 mysql 服务默认是一个 网络服务所以我们可以自己绑定端口号使用 port 字段就可以像设置环境变量一样设置默认端口号。
datadir 字段我们将来在建表建立数据库都会存储在 datadir 字段存储的 路径当中。
[mysqld]
# #
Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size 128M
# #
Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# #
Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size 128M
# sort_buffer_size 2M
# read_rnd_buffer_size 2Mport3306 // 默认端口号
datadir/var/lib/mysql // 存储用户建立数据库数据的路径
socket/var/lib/mysql/mysql.socklog-error/var/log/mysqld.log // 存储错误日志路径
pid-file/var/run/mysqld/mysqld.pid
character-set-serverutf8 // server端使用的 编码格式是 utf-8
default-storage-engineinnodb // mysql 使用的存储引擎
# 配置完毕重启mysql即可
同样的每一次修改配置文件都需要重启 mysql 服务。
设置开启自启动 输入下述的两行命令设置开始自启动 mysql
#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload
常见问题
mysql 已经配置了客⼾端服务器utf8编码但是⽆法输⼊中⽂ 确保您在终端命令⾏中可以输⼊中⽂: [whbVM-0-3-centos ~]$ env |grep LANG
LANGen_US.utf8 安装遇到秘钥过期的问题
Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决方案
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
其他安装
CentOS 6.5下编译安装MySQL 5.6.14_野马红尘的技术博客_51CTO博客
CentOS 7 通过 yum 安装 MariaDB - 知乎 (zhihu.com)
Windows下通过MySQL Installer安装MySQL服务_野马红尘的技术博客_51CTO博客
windows 当中mysql 的 自启动
执行 winr 输入 services.msc 打开服务管理器 你可以在上述服务管理器当中找到你在windows 当中安装的 MySQL 找到对应的 Mysql可以选择启动或者是 关闭。 了解数据库
就算我们没有学习过数据库看数据库这个名字要知道这个东西就是拿来存储数据的。那么存储数据使用文件不就可以了吗为什么还需要创建一个数据库呢 文件保存数据有以下几个缺点
文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 我们知道我们使用 C/C 程序向 文件当中是输入输出数据其实都是输入一些字符串在文件当中保存数据都是以 字符的方式来一个一个存储数据的。
这样就有一个很大的问题不同的语言程序对于文件当中的数据的读取有困难了语言当中的数据类型相对于文件当中只有字符的话就很复杂了。比如有 int double short 等等。
高级语言当中之所以要创建出这么多的数据类型就要要用不同的数据类型来描述不同表现方式的数据使得计算机可以更好的识别处不同的数据类型从而使用不同的运算方式。这大大的提高的计算机 和 用户之间的交互效率。
所以如果是只看文件当中单纯的使用字符的方式来进行存储的话是不行的。
首先我们需要存储的数据体量可能是很大的那么我们要从中找到一些相同表现类型的数据无疑是大海捞针不看这个就看程序员要使用怎么样的程序才能更好的提取出这些数据如果文件当中的各种数据之间 存储 是没有规律的话这很难实现。 而数据库的本质就是对于数据内容存储的一套解决方案只需要用户或者是程序员向数据库提供一个要求数据库就可以给出对应要求的数据子集。
数据库存储介质
磁盘内存
为了解决上述问题专家们设计出更加利于管理数据的东西——数据库它能更有效的管理数据。
主流数据库 SQL Sever 微软的产品.Net程序员的最爱中大型项目。Oracle 甲骨文产品适合大型项目复杂的业务逻辑并发一般来说不如MySQL。MySQL世界上最受欢迎的数据库属于甲骨文并发性好不适合做复杂的业务。主要用在电商SNS论坛。对简单的SQL处理效果好。PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库不管是私用商用还是学术研究使用可以免费使用修改和分发。SQLite 是一款轻型的数据库是遵守ACID的关系型数据库管理系统它包含在一个相对小的C库中。它的设计目标是嵌入式的而且目前已经在很多嵌入式产品中使用了它它占用资源非常的低在嵌入式设备中可能只需要几百K的内存就够了。H2 是一个用Java开发的嵌入式数据库它本身只是一个类库可以直接嵌入到应用项目中。 mysql基本数据库操作 连接数据库
mysql -h 127.0.0.1 -P 3306 -u root -p 因为 mysql 服务本身是一种 网络服务所以在链接之时是需要告诉 主机ip 地址的。像上述的 ip 代表的就是 本地环回。
网口本地环回地址详解 有什么作用_回环地址-CSDN博客 因为上述我们设置了 免密码所以-p 后面是空的直接回车即可不需要带上密码。 我们上述设置了配置文件所以可以简写为
mysql -u root -p
如果没有写 -h 127.0.0.1 默认是连接本地如果没有写 -P 3306 默认是连接3306端口号
上述就是默认本地主机端口号使用配置文件当中默认的端口号。 谈一谈 mqsql 和 mysqld mqsql 是mysql 的客户端而 mysqld 是mysql 的服务器端。
所以其实 mysql 本质上其实是一个网络服务。
一个可执行程序带 d 的一般是一个程序的守护进程mysql 是 基于 CmysqlSmysqld 模式一种网络服务。mysqld的 就是这个网络服务的 守护进程。 mysql 是一套给我们提供数据服务的网络程序而数据库一般是指在磁盘或者内存当中存储的特定结构组织的数据。 服务器数据库表关系
所谓安装数据库服务器只是在机器上安装了一个数据库管理系统程序这个管理程序可以管理多个数据库一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据一般会在数据库中创建多个表以保存程序中实体的数据。数据库服务器、数据库和表的关系如下 数据库使用案例 创建一个 名为 helloworld 的 数据库注意后面要带上分号
create database helloworld; 此时在存储数据库的目录当中就存储了我们上述创建的一个数据库下述当中是显示出一个目录出来 在mysql 服务当中使用 show databases; 也可以查看到当前的数据库 所以本质上在Linux 当中建立一个数据库就是建立一个目录。 选择一个数据库下述例子是使用 helloworld 这个数据库对这个数据进行操作
use helloworld创建一个数据库表
create table student(id int,name varchar(32),gender vatchar(2)
) 在我们建立student 表之前helloworld 目录当中只有如下一个文件 建立student 表之后就多出了两个文件 所以 Linux 当中 在数据库当中创建一个 表本质其实就是在Linux 当中创建一个文件。 在上述建立的student表当中插入数据
insert into student(id, name, gender) values (1, 张三 , 男); 如果在插入过程当中出现下述的错误说明当前属性的编码格式可能不是 utf-8 的 可以使用下述的命令来修改 表当中某一个属性的 编码格式
alter table Student change 属性名 属性名 char(10) character set utf-8; 之后就可以 插入成功了 我们可以尝试插入 多个对象 然后使用 sql 语句对 student 表当中进行查询 删除一个表
DROP TABLE table_name ; -- 直接删除表不检查是否存在
MySQL 删除数据表 | 菜鸟教程 (runoob.com) 上述例子的总结
上述我们简单的新建了一个数据库然后在这个数据库当中建立了一个表然后对于这个表当中的一个一个对象进行了一个访问查找的操作。
所以其实本质上我们新建一个数据库本质上就是在创建一个目录在这个目录当中有一个数据库的配置文件在这个数据库目录当中我们新增一个 表其实就是 在这个数据库目录当中新增一个 几个文件。
对于上述的 数据库目录和 目录当中管理着各个表的 文件其实都不是有 用户 或者是 程序员去做的
而是由 mysqld 服务器端帮我们去做的用户 和 程序员本上是不参与 目录和文件的修改的但是通过 mysqld 我们可以对 数据库 和 数据库当中的表和 表当中的一个一个对象属性进行增删查改。
用户只需要通过 mysql 客户端 访问到 mysqld 服务器端然后通过 mysqld 服务器端访问到 对应主机当中的 数据库目录当中表文件也就访问到数据库当中的 数据了。
至于数据库当中的数据怎么被管理的什么时候该刷新什么时候进行增删查改··· 所有的关于数据管理的细节作为用户或者是程序员其实都是不用关心的。作为用户只用关心当前需要管理哪一些数据当前需要增删查改什么数据供用户或者是程序员来使用。 MySQL 架构 MySQL 是一个可移植的数据库几乎能在当前所有的操作系统上运行在主流的操作系统当中。比如Unix/Linux、Windows、Mac 和 Solaris。 上述的存储引擎之所以有很多种是因为用户存储的数据是有很多种的比如二进制的文档形式的大文件型式的···· 等等需要用到不同的存储引擎来帮助用户来进行 增删查改。
所以mysql 本身其实就是一个文件系统只不过这个 musql 的 文件系统是在操作系统 之上的一个 文件系统。 所以对于上述的 mysql 在操作系统看来上面的三层最低到 存储引擎都是属于 进程属于用户层而 最底层对于 硬件当中的操作才是操作系统。 SQL语句的分类 DDL【data definition language】 数据定义语言用来维护存储数据的结构 代表指令: create, drop, alterDML【data manipulation language】 数据操纵语言用来对数据进行操作 代表指令 insertdeleteupdate ·DML中又单独分了一个DQL数据查询语言代表指令 selectDCL【Data Control Language】 数据控制语言主要负责权限管理和事务 代表指令 grantrevokecommit 存储引擎 存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎支持多种存储引擎。 查看存储引擎
show engines; 其中 innodb 引擎是使用得最多的。