做网站公司哪家强,网站建设前端岗位职责,怒江州建设局网站,河南住房和城乡建设厅官网一、介绍
MySQL是一个关系型数据库管理系统#xff0c;由瑞典MySQL AB 公司开发#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一#xff0c;在 WEB 应用方面#xff0c;MySQL是最好的 RDBMS (Relational Database Management System#x…一、介绍
MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System关系数据库管理系统) 应用软件之一。 MySQL是一种关系型数据库管理系统关系数据库将数据保存在不同的表中而不是将所有数据放在一个大仓库内这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策分为社区版和商业版由于其体积小、速度快、总体拥有成本低尤其是开放源码这一特点一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
二、应用环境
与其他的大型数据库例如 Oracle、DB2、SQL Server等相比MySQL [1] 自有它的不足之处但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说MySQL提供的功能已经绰绰有余而且由于 MySQL是开放源码软件因此可以大大降低总体拥有成本。
Linux作为操作系统Apache 或Nginx作为 Web 服务器MySQL 作为数据库PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件FLOSS)因此使用这种方式不用花一分钱除开人工成本就可以建立起一个稳定、免费的网站系统被业界称为“LAMP“或“LNMP”组合
三、系统特性
1、MySQL使用 C和 C编写并使用了多种编译器进行测试保证了源代码的可移植性。
2、支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
3、Group ReplicationMySQL 5.7.21 引入了 Group Replication 功能这是 MySQL 的一种高可用性和复制解决方案。它基于组复制协议允许将一个 MySQL 服务器组成员作为复制集群的一部分。Group Replication 提供了自动故障检测和恢复机制以确保数据的一致性和可用性。
4、JSON 支持的增强MySQL 5.7.21 对 JSON 类型进行了增强。它引入了一些新的 JSON 函数和操作符使得在处理和查询存储为 JSON 数据的字段时更加灵活和方便。此外还提供了更好的 JSON 支持以及对 JSON 数据的索引和搜索功能。
5、InnoDB 存储引擎的改进InnoDB 是 MySQL 默认的事务性存储引擎在 MySQL 5.7.21 中进行了一些改进。这些改进包括性能优化、并发性增强、稳定性提升以及对空间和存储管理的改进。
6、GIS 功能的增强MySQL 5.7.21 进一步加强了对地理空间数据的支持。它引入了新的 GIS 函数和操作符提供了更强大的地理空间数据处理能力。这些功能使得在存储和查询地理空间数据时更加方便和高效。
7、优化器和执行计划改进MySQL 5.7.21 对查询优化器进行了一些改进以提高查询的执行性能。这些改进包括索引选择和使用的优化、执行计划的改进以及查询性能的优化策略。
8、安全性增强MySQL 5.7.21 引入了一些安全性增强的功能。其中包括密码强度检查和密码过期功能的改进以及对安全连接Secure Connection的支持。
四、服务部署
1、下载MySQL官方包
## 下载MySQL
[rootlocalhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz2、解压并移动安装包
# 解压 tar -zxvf 待解压目录
[rootlocalhost ~]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz# 移动 mv 移动目录 移动后的目录
[rootlocalhost ~]# mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql3、创建数据目录
# 进入MySQL目录
[rootlocalhost ~]# cd /usr/local/mysql# 创建data文件夹(也可以根据那个磁盘大而定__df -Th查看)
[rootlocalhost mysql]# mkdir data4、创建mysql用户权限
# 创建msyql组
[rootlocalhost mysql]# groupadd mysql# 创建mysql用户并添加到mysql组中,-r表示mysql是系统级用户-g是所属组为mysql
[rootlocalhost mysql]# useradd -r -g -U mysql mysql# 修改mysql目录的组以及权限
[rootlocalhost mysql]# chown mysql:mysql -R ./5、修改MySQL配置文件 [rootlocalhost mysql]# vi /etc/my.cnf [mysqld]
## 用于指定 MySQL 服务器绑定的网络接口地址127.0.0.1代表只能本地访问
bind-address 127.0.0.1
port 3306
user mysql# mysql解压目录
basedir /usr/local/mysql# 数据存放目录
datadir /usr/local/mysql/data# 跳过密码验证
# skip-grant-tables# socker文件存放目录
socket /tmp/mysql.sock# 错误日志
log-error /usr/local/mysql/data/mysql.error# mysql进程号
pid-file /usr/local/mysql/data/mysql.pid# 日志记录慢查询SQL
slow_query_log true
slow_query_log_file /usr/local/mysql/data/mysql_slow_query.log
long_query_time 1#记录没有使用index的查询记录
log-queries-not-using-indexes
sql_mode NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER6、初始化MySQL
# 初始化 --defaults-file为配置文件所在 ,--basedir为解压路径,--datadir为数据保存路径 --user表示MySQL所属用户
[rootlocalhost mysql]# ./bin/mysqld --defaults-file/etc/my.cnf --basedir/usr/local/mysql/ --datadir/usr/local/mysql/data --usermysql --initialize## 如果执行完初始化没有报错复制MySQL启动脚本到/etc/init.d/目录便于使用service mysql start启动
[rootlocalhost mysql]# cp support-files/mysql.server /etc/init.d/mysql7、查看密码
## 初始化MySQL是会生产一个临时密码可以通过查看在my.cnf中配置的log-error的配置文件知晓。
[rootlocalhost mysql]# cat data/mysql.error
rootlocalhost: 2(Q!o_an6ZaI ##通常最后一行8、设置systemd启动文件 [rootlocalhost mysql]# vim /usr/lib/systemd/system/mysql.service [Unit]
DescriptionMySQL Server
Documentationman:mysqld()
Documentationhttp://dev.mysql.com/doc/refman/en/using-systemd.html
Afternetwork.target
Aftersyslog.target[Install]
WantedBymulti-user.target[Service]
Usermysql
Groupmysql
PIDFile/usr/local/mysql/data/mysqld.pid# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec# Execute pre and post scripts as root
PermissionsStartOnlytrue
# Needed to create system tables
#ExecStartPre/usr/bin/mysqld_pre_systemd# Start main service
ExecStart/usr/local/mysql/bin/mysqld --daemonize --pid-file/usr/local/mysql/data/mysqld.pid
#注意这里要加上 --daemonize
# Use this to switch malloc implementation
#EnvironmentFile-/etc/sysconfig/mysql# Sets open_files_limit
LimitNOFILE
Restarton-failure
RestartPreventExitStatus
PrivateTmpfalse9、启动服务
## 开机自启动
[rootlocalhost mysql]# systemctl enable --now mysql.service10、设置环境变量
[rootlocalhost mysql]# vim /etc/profile
export PATH$PATH:/usr/local/mysql/bin ## 最后一行添加
[rootlocalhost mysql]# source /etc/profile11、修改密码
## 登入MySQL
[rootlocalhost mysql]# mysql -uroot -p
Enter password: ## mysql.error获取的临时密码ep(U:hpym0f## 修改密码
mysql SET PASSWORD PASSWORD(123456);
mysql ALTER USER rootlocalhost PASSWORD EXPIRE NEVER;
mysql FLUSH PRIVILEGES; ## 设置MySQL远程登入
mysql GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY 123456 WITH GRANT OPTION;
mysql FLUSH PRIVILEGES; 五、开放相关端口
[rootlocalhost mysql]# firewall-cmd --zonepublic --add-port3306/tcp --permanent
[rootlocalhost mysql]# firewall-cmd --reload