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

MySQL系列-YUM和RPM包安装(v8.0.25)

时间:2023-03-17 17:33:26 科技观察

一、安装说明本文介绍MySQL-v8.0.25版本使用YUM源和RPM包的安装和简单配置。8.0版本下载:https://dev.mysql.com/downloads/mysql/本文使用本地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//mysql80-community-release-el7-3.noarch。rpm##验证是否添加成功yumrepolisenabled|grep"mysql.*-community.*"##在YUM源中查看MySQL版本yumrepolisall|grepmysql##从上图中可以看到5.5、5.6、和5.7默认禁用。版本8.0已启用。要启用禁用版本,有两种方法。方法一:使用yum-config-manager命令yum-yinstallyum-utilsyum-config-manager--disablemysql80-communityyum-config-manager--enablemysql57-community方法二:修改/etc/yum.repos.d/mysql-community.repo文件vi/etc/yum.repos.d/mysql-community.repo参数选项enabled=1表示启用,enabled=0表示禁用。注意:任何时候只能激活一个版本。在本文中,默认启用版本8.0。②安装MySQLyum-yinstallmysql-community-server2.RPM包安装①下载RPM包cd/data/toolswgethttps://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.25-1.el7.x86_64。rpm-bundle.tartarxfmysql-8.0.25-1.el7.x86_64.rpm-bundle.tar##解压后包含8个文件##各RPM包说明:mysql-community-client:MySQL客户端应用及工具mysql-community-common:服务器和客户端库的通用文件mysql-community-devel:MySQL数据库客户端应用程序的开发头文件和库mysql-community-embedded-compat:作为嵌入式库的MySQL服务器,与库版本18mysql的应用程序兼容性一起使用-community-libs:MySQL数据库客户端应用程序的共享库mysql-community-libs-compat:以前安装的MySQL的共享兼容性库mysql-community-server:数据库服务器和相关工具mysql-community-test:MySQL服务器测试套件②安装mysql按照common→client-plugins→libs→client→server的顺序安装,否则安装过程会提示依赖顺序,其他都是不必要的安装包。cd/data/toolsrpm-ivhmysql-community-common-8.0.25-1.el7.x86_64.rpmrpm-ivhmysql-community-client-plugins-8.0.25-1.el7.x86_64.rpmrpm-ivhmysql-community-libs-四、安装说明验证后1.默认文件和目录路径客户端程序和脚本:/usr/bin配置文件:/etc/my.cnf数据目录路径:/var/lib/mysql错误日志文件:/var/log/mysqld.logPID文件:/var/run/mysql/mysqld.pidSocket文件:/var/lib/mysql/mysql.sock手册页:/usr/share/man包含(头)文件:/usr/include/mysqllib库文件:/usr/lib/mysql其他支持文件(例如错误信息和字符集文件):/usr/share/mysql服务启动脚本:/usr/lib/systemd/system/mysqld.service2.启动服务并查看状态##启动服务systemctlstartmysqld.service##查看服务状态systemctlstatusmysqld.service3。测试是否安装成功使用yum和rpm包安装会生成默认密码,密码一般存在日志文件/var/log/mysqld.log##查看密码grep'temporarypassword'/var/log/mysqld.log本文安装时默认生成的密码为:6sl0?r/E.=MX##Locallogindatabasetestmysql-uroot-p//输入默认生成的密码登录数据库##查看默认数据库showdatabases;//执行上述语句命令时,会报错,如下图。注意:首次登录,必须先使用ALTERUSER语句重新设置密码,然后再执行语句命令操作。5.MySQL安全设置##MySQL服务启动后,执行mysql_secure_installation。输入安装时默认生成的root密码后,会提示重新设置root密码。在本文中,将新密码设置为:Bi6#Cs2eNq@Ra8F*wXtd%H服务器上安装的“validate_password”组件。后续步骤将使用现有配置来运行组件。使用现有的根密码。估计密码强度:100更改root密码?输入y继续注意:用yum或rpm包安装MySQL8.0版本时,默认安装并启用密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大写和小写字母、数字和特殊符号,长度不能少于8个字符。您要继续使用提供的密码吗?输入y继续默认情况下,MySQL安装时使用匿名用户,这允许任何人无需创建用户帐户即可登录MySQL。这仅用于测试目的。正式生产环境建议删除。删除匿名用户?输入y继续。一般情况下,root用户只允许localhost(即本机)登录,以保证某些人猜不到root网络远程密码。禁用root远程登录?输入y继续(以后可以通过命令行启用root远程登录)默认情况下,MySQL自带一个名为“test”的数据库,任何人都可以访问。这也仅用于测试。正式生产环境建议删除。删除测试数据库并访问它?输入y继续并重新加载权限表将确保所有更改立即生效。现在重新加载权限表?输入y继续至此,整个MySQL安装完成。六、账户安全及数据目录配置1、远程访问设置经过上一步的安全设置后,只允许root账户在本地登录。如果要连接其他机器上的mysql或者使用工具,必须给root账号授予远程连接权限,或者添加一个允许远程连接的账号。为了安全起见,本文新增一个账号operator,密码为M*rdS9kyT8WqG%apY#h***特别提醒:MySQL5.7.6和最新版本数据库下的user表没有中的密码字段,但加密后的用户密码存储在authentication_string字段中。而且密码复杂度高,需要字母、数字、特殊字符。MySQL8.0默认使用的密码认证插件是“caching_sha2_password”。设置远程密码时最好使用认证插件“mysql_native_password”。mysql-uroot-p//输入上面步骤设置的root本地登录密码“Bi6#Cs2eNq@Ra8F*wXtd%H”登录数据库usemysql;CREATEUSER'operator'@'%'IDENTIFIEDWITHmysql_native_passwordBY'M*rdS9kyT8WqG%apY#h';GRANTALLPRIVILEGESON*.*TO'operator'@'%'WITHGRANTOPTION;FLUSHPRIVILEGES;##切换到mysql库usemysql;##查看用户selectuser,hostfromuser;2.更改数据存储目录①创建目录mkdir-p/data/mysql②关闭MySQL服务systemctlstopmysqld.service③将数据移动到数据存储目录cd/var/lib/mysqlmv*/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=3306user=mysqlsocket=/data/mysql/mysql.sockdatadir=/data/mysqlcharacter-set-server=utf8mb4collat??ion-server=utf8mb4_general_ciinit_connect='SETNAMESutf8mb4'跳过-external-lockingskip-name-resolveserver-id=1transaction_isolation=REPEATABLE-READexplicitfor_time_stacks=true_default_stacks=512Kexternal-locking=FALSEgtid_mode=ONenforce_gtid_consistency=ON##最大连接数max_connections=5000max_connect_errors=1000back_log=300##二进制日志log-bin=/data/mysql/mysql-binbinlog_format=ROWbinlog_row_image=FULLbinlog_expire_logs_seconds=0binlog_cache_size=16Mmax_binlog_cache_size=1Gmax_binlog_size=512Msync_binlog=1##慢日志slow_query_log=onslow_query_log_file=/data/mysql/db-slow.loglong_query_time=1log_slow_admin_statements=1#作为从库时生效log_slow_slave_statements=1log-queries-not-using-indexes=0log_throttle_queries_not_using_indexes=60##缓冲区table_open_cache=600table_definition_cache=700table_open_cache_instances=64max_allowed_pa??cket=32Msort_buffer_size=16Mjoin_buffer_size=8Mtmp_table_size=64Mmax_heap_table_size=64M##对MyISAM表起作用key_buffer_size=128Mread_buffer_size=8Mread_rnd_buffer_size=32Mbulk_insert_buffer_size=64Mthread_cache_size=16##主从复制配置log_slave_updates=1relay-log=/data/mysqlrelay-log-recovery=on##innodb性能设置default_storage_engine=InnoDBinnodb_thread_concurrency=0innodb_buffer_pool_size=1Ginnodb_buffer_pool_instances=8innodb_buffer_pool_load_at_startup=1innodb_buffer_pool_dump_at_shutdown=1innodb_data_file_path=ibdata1:10M:autoextendinnodb_log_buffer_size=16Minnodb_log_files_in_group=3innodb_log_file_size=512Minnodb_undo_log_truncate=1innodb_max_undo_log_size=2Ginnodb_undo_directory=/data/mysql##CPU多核处理能力设置innodb_write_io_threads=8innodb_read_io_threads=8innodb_purge_threads=4innodb_page_cleaners=4innodb_open_files=65535innodb_max_dirty_pages_pct=50#innodb_flush_method=O_DIRECTinnodb_lock_wait_timeout=60innodb_rollback_on_timeout=1innodb_print_all_deadlocks=1innodb_autoinc_lock_mode=1innodb_file_per_table=oninnodb_flush_log_at_trx_commit=1##设置时区default_time_zone="+8:00"##超时时间interactive_timeout=3600wait_timeout=3600##默认使用“mysql_native_password”插件认证#default_authentication_plugin=mysql_native_passwordsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES##日志时间设置log_timestamps=系统[mysqldump]quickmax_allowed_pa??cket=64M[mysql]no-auto-rehashdefault-character-set=utf8mb4[myisamchk]key_buffer_size=64Msort_buffer_size=64Mread_buffer=8Mwrite_buffer=8M[mysqlhotcopy]interactive-timeout[mysql-ersafe=]log/mysql/mysql_err.logpid-file=/data/mysql/mysqld.pid注意:①以上参数选项的配置仅供参考。实际环境中,请根据需要修改参数选项②需要修改PID文件的位置/usr/lib/systemd/system/mysqld.service启动脚本中的位置(需要修改systemctldaemon-reload修改后执行),否则配置文件中的pid-file选项不会生效。⑤修改数据目录属性权限chown-Rmysql.mysql/data/mysqlchmod0700/data/mysql⑥修改PID文件位置vi/usr/lib/systemd/system/mysqld.service//修改下图中的两个PID文件位置路径修改my.cnf配置文件中设置的/data/mysql/mysqld.pid##后,执行以下命令重新加载服务配置文件systemctldaemon-reload⑦启动MySQL服务systemctlstartmysqld.service七、测试1.创建测试数据库mysql-uroot-p//输入上面步骤设置的root本地登录密码“Bi6#Cs2eNq@Ra8F*wXtd%H”登录数据库##创建测试库,指定字符设置和排序规则CREATEDATABASEtestDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;##查看验证showdatabases;2.创建普通用户并授权mysql-uroot-p//输入上面步骤设置的root本地登录密码“Bi6#Cs2eNq@Ra8F*wXtd%H”登录数据库##切换到mysql库usemysql;##CreateuserCREATEUSER'test'@'%'IDENTIFIEDWITHmysql_native_passwordBY'FO8qgMXjG*RgAjN%2mPT#mVz';//默认密码策略要求密码必须包含大小写字母、数字和特殊符号,长度应不少于8个字符。当然,你也可以修改默认的密码策略。##授权GRANTselect,insert,update,delete,createontest.*to'test'@'%';##刷新权限FLUSHPRIVILEGES;##查看用户selectuser,hostfromuser;##查看测试用户权限showGRANTSfor'test'@'%';八、服务管理启动:systemctlstartmysqld.service查看状态:systemctlstatusmysqld.service关闭:systemctlstopmysqld.service重启:systemctlrestartmysqld.service设置开机启动:systemctlenablemysqld.service了吗?Windows必备的5款软件!一旦你尝试欲罢不能,赶紧收藏这些良心软件,让你的Windows爽起来。2021年薪资最高的5种编程语言Linux密码管理器1Password如何安装?