当前位置: 首页 > 科技观察

MySQL系列-YUM和RPM包安装(v5.7.34)

时间:2023-03-14 11:38:38 科技观察

一、安装说明本文介绍MySQL-v5.7.34版本使用YUM源和RPM包的安装和简单配置。5.7版本下载地址:https://dev.mysql.com/downloads/mysql/5.7.html本文使用本地VM虚拟机进行部署和测试。操作系统:CentOS7.8x64虚拟机配置:2核CPU,4G内存2.清理系统环境CentOS7版本系统默认安装了MariaDB,需要先进行清理。##查询已安装的mariadbrppm-qa|grepmariadb或yumlistinstalled|grepmariadb##卸载mariadb包,文件名为rpm-e--nodepsmariadb-libs-5.5.65-1.el7.x86_64或yum查询到的文件以上命令-yremovemariadb-libs.x86_64mariadb-libs清理说明:先不要手动卸载YUM安装,安装过程中会自动卸载mariadb-libs;使用RPM包安装时,必须先手动卸载mariadb-libs包,否则无法安装,安装后会报错,如下图(错误信息截图)。3.安装MySQL1.YUM安装①添加MySQLYumRepository##将MySQLYumRepository添加到系统仓库列表rpm-ivhhttps://repo.mysql.com//mysql57-community-release-el7.rpm##验证是否添加成功yumrepolistenabled|grep"mysql.*-community.*"##在YUM源中查看MySQL版本yumrepolistal|grepmysql##从上图中可以看到5.5、5.6、8.0版本默认是禁用的,并且默认启用5.7版本。要启用禁用版本,有两种方法。方法一:使用yum-config-manager命令yum-yinstallyum-utilsyum-config-manager--disablemysql57-communityyum-config-manager--enablemysql56-community方法二:修改/etc/yum.repos.d/mysql-community.repo文件vi/etc/yum.repos.d/mysql-community.repo参数选项enabled=1表示启用,enabled=0表示禁用。注意:任何时候只能启用一个版本。在本文中,默认启用版本5.7。②安装MySQLyum-yinstallmysql-community-server2.RPM包安装①下载RPM包cd/data/toolswgethttps://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.34-1.el7.x86_64。rpm-bundle.tartarxfmysql-5.7.34-1.el7.x86_64.rpm-bundle.tar##解压后包含10个文件##每个RPM包说明:mysql-community-client:MySQL客户端应用和工具mysql-community-common:服务器和客户端库的通用文件mysql-community-devel:MySQL数据库客户端应用程序的开发头文件和库mysql-community-embedded:MySQL嵌入式库mysql-community-embedded-compat:MySQL服务器作为嵌入式库,与使用库版本18的应用程序兼容mysql-community-embedded-devel:作为可嵌入库的MySQL开发头文件和库mysql-community-libs:MySQL数据库客户端应用程序共享库mysql-community-libs-compat:以前的共享兼容性库MySQL安装mysql-community-server:数据库服务器及相关工具mysql-community-test:MySQL服务器测试套件②按照common→libs→client→server→libs-compat→devel安装MySQL待安装led顺序,否则安装过程会提示依赖顺序,其他都是非必须的安装包。cd/data/toolsrpm-ivhmysql-community-common-5.7.34-1.el7.x86_64.rpmrpm-ivhmysql-community-libs-5.7.34-1.el7.x86_64.rpmrpm-ivhmysql-community-client-5.7。34-1.el7.x86_64.rpmrpm-ivhmysql-community-server-5.7.34-1.el7.x86_64.rpm//以上四个包必须安装,libs-compat和devel不是必须的。rpm-ivhmysql-community-libs-compat-5.7.34-1.el7.x86_64.rpmrpm-ivhmysql-community-devel-5.7.34-1.el7.x86_64.rpm4.安装后说明及验证1.默认文件和目录路径客户端程序和脚本:/usr/bin配置文件:/etc/my.cnf数据目录路径:/var/lib/mysql错误日志文件:/var/log/mysqld.logPID文件:/var/运行/mysql/mysqld.pidSocket文件:/var/lib/mysql/mysql.sock手册页:/usr/share/man包含(头)文件:/usr/include/mysqllib库文件:/usr/lib/mysql其他支持文件(例如错误信息和字符集文件):/usr/share/mysqlservice启动脚本:/usr/lib/systemd/system/mysqld.service2.启动服务并查看状态##Starttheservicesystemctlstartmysqld.service##查看服务状态systemctlstatusmysqld.service3.测试是否安装成功使用YUM和RPM包安装默认密码,密码一般存在日志文件/var/log/mysqld.log##查看密码grep'temporarypassword'/var/log/mysqld.log的本文安装时默认生成的密码为:##本地登录数据库测试mysql-uroot-p//输入默认生成的密码登录数据库##查看默认数据库showdatabases;//执行该命令时,会报错,如下图。注意:首次登录,必须先使用ALTERUSER语句重新设置密码,然后再执行语句命令操作。5.MySQL安全设置##MySQL服务启动后执行mysql_secure_installation。输入安装时默认生成的root密码后,会提示重新设置root密码。在本文中,将新密码设置为:EuN#3yR7k%d9At*WQrm#VozB服务器上安装的“validate_password”组件。后续步骤将使用现有配置来运行组件。使用现有的根密码。估计密码强度:100更改root密码?输入y继续注意:yum或rpm包安装MySQL5.7版本时,默认安装并启用密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大写和小写字母、数字和特殊符号,长度不能少于8个字符。您要继续使用提供的密码吗?输入y继续默认情况下,MySQL安装时使用匿名用户,这允许任何人无需创建用户帐户即可登录MySQL。这仅用于测试目的。正式生产环境建议删除。删除匿名用户?输入y下面一般情况下,root用户只允许localhost(也就是本机)登录,以保证某些人猜不到root网络远程密码。禁用root远程登录?输入y继续(以后可以通过命令行启用root远程登录)默认情况下,MySQL自带一个名为“test”的数据库,任何人都可以访问。这也仅用于测试。正式生产环境建议删除。删除测试数据库并访问它?输入y继续并重新加载权限表将确保所有更改立即生效。现在重新加载权限表?输入y继续至此,整个MySQL安装完成。六、账户安全及数据目录配置1、远程访问设置经过上一步的安全设置后,只允许root账户在本地登录。如果要在其他机器上连接mysql或者使用工具,必须给root账号授予远程连接权限或者添加一个允许远程连接的Accounts。为了安全起见,本文新增一个账号superam,密码为PrZu#VkU*v6a%QsLx8i***特别提醒:MySQL5.7.6及最新版数据库中user表没有密码字段不再存在,但加密的用户密码存储在authentication_string字段中。而且密码复杂度高,需要字母、数字、特殊字符。mysql-uroot-p//输入上面步骤设置的root本地登录密码"EuN#3yR7k%d9At*WQrm#VozB"登录数据库usemysql;CREATEUSER'superam'@'localhost'IDENTIFIEDBY'PrZu#VkU*v6a%QsLx8i';GRANTALLPRIVILEGESON*.*TO'superam'@'%'identifiedby"PrZu#VkU*v6a%QsLx8i"WITHGRANTOPTION;FLUSHPRIVILEGES;2.更改数据存放目录①创建目录mkdir-p/data/mysql②关闭MySQL服务系统ctlstopmysqld.service③将Data移动到数据存放目录cd/var/lib/mysqlmv*/data/mysql/④修改数据目录属性和权限chown-rmysql.mysql/data/mysqlchmod0700/data/mysql⑤修改配置文件my.cnf##备份默认生成my.cnfmv/etc/my.cnf/etc/my.cnf.bak##新建my.cnf文件vi/etc/my.cnf//输入如下配置内容[client]port=3306socket=/data/mysql/mysql.sockdefault-character-set=utf8mb4[mysqld]port=3306socket=/data/mysql/mysql.sockdatadir=/data/mysqlcharacter-set-server=utf8mb4collat??ion-server=utf8mb4_general_ciinit_connect='SETNAMESutf8mb4'server-id=1log-slave-updates=trueskip-external-lockingskip-name-resolveback_log=300table_open_cache=128max_allowed_pa??cket=16Mread_buffer_size=8Mread_rnd_buffer_mjoin_size=64ffer_size=8Mkey_buffer_size=128Mthread_cache_size=16log-bin=mysql-binbinlog_format=row######主从log-slave-updates=true######慢日志slow_query_log=onlong_query_time=1slow_query_log_file=/data/mysql/db-slow.loggtid_mode=ONenforce_gtid_consistency=ONexpire_logs_days=7default_storage_engine=InnoDBinnodb_buffer_pool_size=1Ginnodb_data_file_path=ibdata1:10M:autoextendinnodb_file_per_table=oninnodb_write_io_threads=4innodb_read_io_threads=4innodb_thread_concurrency=8innodb_purge_threads=1innodb_flush_log_at_trx_commit=1innodb_log_buffer_size=8Minnodb_log_file_size=512Minnodb_log_files_in_group=3innodb_max_dirty_pages_pct=90innodb_lock_wait_timeout=60max_connections=5000interactive_timeout=28800wait_timeout=28800sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONsymbolic-links=0######时间参数log_timestamps=SYSTEM[mysqldump]quickmax_allowed_pa??cket=32M[mysql]nodefault-auto-character-rehashet=utf8mb4[myisamchk]key_buffer_size=64Msort_buffer_size=64Mread_buffer=8Mwrite_buffer=8M[mysqlhotcopy]interactive-timeout[mysqld_safe]log-error=/data/mysql/mysql_err.logpid-file=/data/mysql/mysqld.pid注:①以上参数选项配置仅供参考。在实际环境中,请根据需要修改参数选项。②需要在/usr/lib/systemd/system/mysqld.service启动脚本中修改PID文件的位置(修改后需要执行systemctldaemon-reload),否则无法配置文件中的pid-file选项生效。⑥修改PID文件的位置vi/usr/lib/systemd/system/mysqld.service//修改下图中两个PID文件的位置和路径为my.c文件中设置的/data/mysql/mysqld.pid。cnf配置文件##修改后执行以下命令,重新加载服务配置文件systemctldaemon-reload⑦启动MySQL服务systemctlstartmysqld.service7.测试1.创建测试数据库mysql-uroot-p//输入root中设置的本地登录密码以上步骤“EuN#3yR7k%d9At*WQrm#VozB”登录数据库##创建测试库,指定字符集和排序规则CREATEDATABASEtestDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;##查看showdatabases;2.创建普通用户并授权mysql-uroot-p//回车上面步骤设置的root本地登录密码“EuN#3yR7k%d9At*WQrm#VozB”登录数据库##切换到mysql库usemysql;##创建用户CREATEUSER'test'@'%'IDENTIFIEDBY'gP*hS9y#NbC8r*tMw%rdBm';//默认密码策略要求通过sword必须包含大小写字母、数字、特殊符号,长度不少于8个字符。当然,你也可以修改默认的密码策略。##授权GRANTselect,insert,update,delete,createontest.*to'test'@'%';##刷新权限FLUSHPRIVILEGES;##查看用户selectuser,hostfromuser;##查看测试用户权限showGRANTSfor'test'@'%';八、服务管理启动:systemctlstartmysqld.service查看状态:systemctlstatusmysqld.service关闭:systemctlstopmysqld.service重启:systemctlrestartmysqld.serviceset开机启动:systemctlenablemysqld.service【编辑推荐】什么是接入网络?未来的职业道路是什么?从源码到业务,React性能优化终极指南等了这么久,谷歌终于推出了FuchsiaOSGC详解,同事小勇看完这篇文章震惊了