怎么搭建企业级MySQL数据库服务器?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 在CentOS7平台下安装MySQL数据库管理系统工具的方式有很多,我们可以选择简单的二进制数据包安装,也可以选择源码包安装,由于源码安装方式编译的灵活性,这里我们将采用源码安装的方式作为演示案例,源码安装MySQL主要分为安装依赖包、下载MySQL源码包、配置安装环境,编译及安装、初始化数据库五大步骤。

CentOS7平台下安装MySQL数据库管理系统工具的方式有很多,我们可以选择简单的二进制数据包安装,也可以选择源码包安装,由于源码安装方式编译的灵活性,这里我们将采用源码安装的方式作为演示案例,源码安装MySQL主要分为安装依赖包、下载MySQL源码包、配置安装环境,编译及安装、初始化数据库五大步骤。


需要注意的是,MySQL5.6使用cmake构建安装架构,如果用户坚持使用之前的configure安装方式,可以通过源码包中的BUILD/autorun.sh脚本生成configure文件,从而实现传统的配置安装。


不管使用那种方式,安装部署MySQL数据库之前都需要安装相应的依赖包,这里使用yum提前安装好这些依赖包,随后同通过MySQL官网下载源码软件进行安装


[root@localhost ~]# yum -y install gcc make cmake ncurses-devel libxm12-devel </p>

libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel


[root@localhost ~]# wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.11.tar.gz


安装过程中需要为数据库进程创建用户及组账号,应为是服务进程账户,所以该类账户无需登录操作系统,设置Shell 为/sbin/nologing更加安全。当MySQL编译安装完成后,还需要为软件主目录设置正确的用户及组。


[root@localhost ~]# groupadd mysql


[root@localhost ~]# useradd -r -s /sbin/nologin -g mysql mysql


[root@localhost ~]# tar -xzf mysql-5.6.11.tar.gz -C /usr/src/


[root@localhost ~]# cd /usr/src/mysql-5.6-11/


[root@localhost ~]# cmake . -DENABLE_DOWNLOADS=1


[root@localhost ~]# make && make install


[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql


数据库软件安装完成后,问你需要使用mysql_install_db脚本初始化数据库,使用user定义数据库账户名称,使用basedir定义软件主目录,使用datedir定义数据库存放目录。初始化完成后,需要将mysql主配置文件my.cnf复制一份到 /etc/ 目录下。


[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql </p>

--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data


[root@localhost ~]# cp /usr/local/mysql/my.cnf /etc/my.cnf


通过以上步骤,我们已经完成了mysql数据库软件的安装,如果想尝试使用强大的mysql数据库管理系统,就需要使用mysqld_safe进程手动启动数据库服务进程或通过软件包所提供的启动脚本mysql.server来管理服务进程。


[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --user=mysql &


[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /erc/init.d/mysqld


[root@localhost ~]# chkconfig --add mysqld


[root@localhost ~]# chkconfig mysql on


[root@localhost ~]# PATH=$PATH:/usr/local/mysql/bin/


[root@localhost ~]# echo “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profilt


至此MySQL数据库系统已经安装并初始化完成,我们可以通过mysqld启动脚本实现开机启动功能。但在UNIX环境下,使用mysql_install_db程序进行初始化数据库是,默认会创建一个用于测试用的空白数据库test,同时初始化程序还会在mysql数据库创建user表,该数据表为mysql数据库系统的账户及权限表,初始情况下,该表有如下一些问题。


l mysql.user表中的root为超级管理员账户,然而账户默认没有密码,因此可能导致非法用户在没有密码的情况下直接访问数据库。


l mysql.user中默认创建了匿名账号,这些账号同样没有设置密码。可通过如下命令查看mysql默认创建的user账号及密码数据。


[root@localhost ~]# mysql -u root -e “SELECT User,Host,Password FROM mysql.user”


为此mysql特别提供了一个perl脚本程序专门解决这些问题,运行该脚本的前提是在操作系统中已经安装perl程序,运行脚本后会提示输入root密码,首次运行直接按回车键既可,之后改程序会通过一系列的提示询问是否为root用户设置密码,是否移除匿名用户,是否禁止root远程登录,是否删除test数据库,是否立刻重新加载新的数据,建议所有提问都选择y,特别是在企业生产环境中这一步是必须的。


[root@localhost ~]# /usr/local/mysql/bin/mysql_secure_installation


至此MySQL所有所有初始化操作完成。


MySQL管理工具


mysql是基于客户端/服务器体系架构的数据库系统,mysql服务器端以守护进程的方式运行,mysql为服务器主进程。当我们需要对服务器进行任何操作时,都需要使用客户端软件来连接服务器进行操作。mysql客户端程序很多,可以使用自带软件mysql、mysqladmin、mysqldump等命令对数据库进行数据操作,也可以自己设计动态网站通过API连接mysql数据库进行相同的数据库操作。另外,在mysql官方网站可以下载到mysql WorkBench工具,该工具时一个图形化mysql数据库客户端管理程序,本杰重点将介绍mysql软件包集成的客户端软件。


1. MySQL工具


mysql是一个简单的命令行SQL工具,该工具支持交互式和非交互式运行,使用mysql命令非常容易,只需要在系统命令终端输入mysql即可进入管理页面


[root@localhost ~]# mysql


如果使用mysqladmin或mysql_secure_installation程序为账号设置了密码,则需要在启动mysql程序时指定账号名和密码,进入交互式界面后,即可通过输入SQL语句对数据库进行操作,SQL语句之后要以 ; 或者 g 结尾。退出程序时可通过exit退出。


[root@localhost ~]# mysql --user=user_name --password=your_password 数据库名称


l 通过提前创建SQL语句脚本文件,我们可以使用mysql工具自定执行数据操作,方法如下


[root@localhost ~]# cat script.sql


show tables;


select * from mysql.userG


[root@localhost ~]# mysql db_name < script.sql > out.tab


其中,script.sql 是SQL脚本文件,out.tabl 为重定向输出文件


l MySQL命令支持大量的选项,一下是MySQL常用选项及描述。


--help,-? 显示帮助信息


--auto-rehash tab自动补齐,默认为开启状态


--auto-vertical-output 自动垂直显示,如果显示太宽,将以列的格式显示


--batch,-B 不使用历史文件


--bind-address=ip_address 使用特定的网络接口连接MySQL服务器


--database=dbname,-D dbname 指定使用的数据库名称


--defaule-character-set=charset_name 设置默认字符集


--delimiter=str 设置语句分隔符


--host=host_name,-h host_name 通过host连接指定服务器


--password,-p 使用密码连接MySQL服务器


--pager=[command] 使用分页程序分页显示


--port=port_num 使用指定端口号连接服务器


--quick 不缓存查询结果


--unfuffered 每次查询后刷新缓存


--user=user_name,-u user_name 使用指定账户连接服务器


l 案例如下


使用root账号连接服务器,无密码登录


[root@localhost ~]# mysql -u root


使用root账号连接服务器,默认进入mysql数据库;


[root@localhost ~]# mysql -u root mysql


使用root账号连接服务器,使用密码123456登录


[root@localhost ~]# mysql -uroot -p123456


使用root账号连接服务器192.168.0.10服务器,使用密码123456


[root@localhost ~]# mysql -uroot -p123456 -h 192.168.0.10


l 使用mysqladmin工具


mysqladmin是一个执行管理的工具,使用它可以检查服务器的配置、运行状态、以及创建和删除数据库等操作。


语法格式如下:


mysqladmin [选项] 命令参数 [命令 [命令参数]]


mysqladmin支持一下命令


create db_test 创建名为db_test的数据库


debug 将debug信息写入错误日志


drop db_test 删除名为drop db_test的数据库以及数据库中的所有的数据表


extended-status 显示服务器状态变量以及变量的值


flush-host 刷新所有主机的缓存信息


flush-logs 刷新所有的日志


flush-privileges 重新加载权限数据表


flush-status 清空状态变量


flush-tables 刷新所有数据表


kill id,id,.. 杀死服务器线程


password new-123456 设置新密码


ping 对服务器进行检查是否可用


reload 重新加载权限数据表


refresh 刷新所有数据表并重启日志文件


shutdown 关闭服务器


云服务器ECS地址:阿里云·云小站

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
27天前
|
存储 数据库 虚拟化
无缝过渡:企业级服务器迁移的策略与最佳实践
【10月更文挑战第4天】随着企业数字化转型的加速,服务器迁移成为企业IT基础设施升级的重要环节。本文从架构与规划的视角,探讨了企业级服务器迁移的策略与最佳实践,旨在帮助企业实现无缝过渡,降低迁移风险,提高迁移效率。
99 4
|
28天前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
49 3
|
1月前
|
前端开发 Java 数据库
企业级JAVA、数据库等编程规范之命名风格 —— 超详细准确无误
文章详细阐述了企业级编程中Java和数据库等编程规范的命名风格,包括包名、类名、方法名、参数名、成员变量、局部变量、常量、抽象类、异常类、测试类、数据库及其字段和CSS等的命名规则。
32 0
企业级JAVA、数据库等编程规范之命名风格 —— 超详细准确无误
|
20天前
|
关系型数据库 MySQL 数据处理
企业级应用 mysql 日期函数变量,干货已整理
本文详细介绍了如何在MySQL8.0中使用DATE_FORMAT函数进行日期格式的转换,包括当日、昨日及不同时间段的数据获取,并提供了实际的ETL应用场景和注意事项,有助于提升数据处理的灵活性和一致性。
37 0
|
2月前
|
存储 弹性计算 SDN
企业级 ECS 集群的构建需要综合考虑多个因素,通过不断的比较和对比不同的方案,选择最适合企业自身需求和发展的架构。
【9月更文挑战第5天】在数字化商业环境中,构建企业级ECS(弹性计算服务)集群对提升业务稳定性、扩展性和性能至关重要。本文将比较传统物理服务器与ECS架构,分析云服务商选择(如AWS和阿里云)、实例配置(CPU/内存)、网络架构(SDN vs 传统)及存储方案(本地存储 vs 云存储),帮助企业根据自身需求选出最优方案,实现高效稳定的ECS集群部署。
66 18
|
2月前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
405 18
|
3月前
|
关系型数据库 MySQL 网络安全
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
这篇文章提供了解决Navicat无法连接腾讯云服务器上MySQL问题的步骤,包括调整防火墙设置、更新MySQL权限和检查远程连接配置。
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
|
2月前
|
存储 弹性计算 缓存
企业级 ECS 集群构建的巅峰对决:谁能主宰未来的命运?
【9月更文挑战第5天】在数字化商业环境中,构建企业级ECS集群对提高业务稳定性、扩展性和性能至关重要。与传统物理服务器相比,ECS可根据需求快速伸缩资源,提升效率和响应速度。选择云服务商时需考量服务广度、成本及网络覆盖。配置ECS实例要考虑业务特性,如计算或内存需求。网络架构方面,软件定义网络(SDN)比传统三层架构更灵活高效。存储方案的选择也影响性能和扩展性。综上所述,构建高效稳定的ECS集群需综合考量多种因素,以支持业务发展。
54 8
|
3月前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
|
3月前
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
32 2