运维实战---多种方式在Linux中部署并初始化MySQL
运维实战—多种方式在Linux中部署并初始化MySQL前言实验环境介绍一、源码包安装MySQL1、配置MySQL编译安装2、初始化数据库3、配置环境变量二、yum安装MySQL三、rpm安装MySQL前言MySQL是常用的关系型数据库具有以下特点1、开源不需要支付额外的费用即可使用2、支持包括Windows/Linux在内的多个操作系统3、支持多种语言包括中文编码GB 2312、BIG5日文的shift_JIS4、为包括C、C、java、python、PHP在内的多种编程语言提供了API5、支持多种存储引擎例如MyISAM、InnoDB6、使用标准的SQL语言进行操作7、支持多线程充分利用CPU资源8、存储数据量大32位系统表文件最大可支持4GB64位系统表文件最大可支持8TB9、可以定制采用了GPL协议通过修改源码来开发自己的MySQL系统基于以上特点MySQL被广泛用于学习与实际工作中本篇文章介绍在Linux系统中使用多种方式部署并初始化MySQL数据库包括源码安装、rpm安装以及yum安装实验环境介绍1、最小化安装的4核4g Centos7.6 虚拟机2、XShell远程连接工具3、本文章中使用的所有源码包、rpm包的下载地址https://www.mysql.com/downloads/一、源码包安装MySQL相较于其他两种安装源码安装较繁琐但优势在于可以在安装时以及初始化阶段将需要设置的参数一次性设置到位以下是安装过程1、配置MySQL编译安装一些版本的Linux系统中默认存在mariadb组件该组件与安装MySQL是冲突的在安装MySQL之前必须把该组件卸载掉其中 --nodeps可以指定只删除mariadb-libs不删除其依赖关系rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs接下来为MySQL安装依赖这些依赖包在本地yum源中均存在无需配置其他网络yum源。不会配置本地yum源的同学请看CentOS7.6配置本地仓库yum install -y cmake make gcc gcc-c openssl openssl-devel ncurses ncurses-devel bisonbison-devel将依赖包上传至Linux系统中需要安装命令lrzsz该命令可实现Windows拖动文件上传至Linux系统中yum -y install lrzsz之后将在MySQL官网上下载的源码包拖动上传至Linux系统解压源码包到指定路径下解压完成后切换到该路径下tar -zxf mysql-boost-5.7.37.tar.gz -C /usr/src/ cd /usr/src/mysql-5.7.37/接着进行预编译有别于其他软件MySQL的预编译使用的是cmake命令复制以下代码cmake -DCMAKE_INSTALL_PREFIX/usr/local/mysql -DMYSQL_DATADIR/usr/local/mysql/data -DSYSCONFDIR/usr/local/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINEON -DWITH_MYISAM_STORAGE_ENGINEON -DDEFAULT_CHARSETutf8 -DDEFAULT_COLLATIONutf8_general_ci -DENABLED_LOCAL_INFILEON -DMYSQL_TCP_PORT3306 -DMYSQL_UNIX_ADDR/usr/local/mysql/tmp/mysql.sock -DWITH_INNODB_MEMCACHEDON -DWITH_BOOSTboost/boost_1_59_0#解释一下上述代码-DCMAKE_INSTALL_PREFIX —指定安装路径-DMYSQL_DATADIR —数据目录即MySQL的数据存放路径-DSYSCONFDIR —配置文件所在路径-DWITH_INNOBASE_STORAGE_ENGINE/-DWITH_MYISAM_STORAGE_ENGINE —启用两种存储引擎-DDEFAULT_CHARSET/-DDEFAULT_COLLATION —指定字符集-DENABLED_LOCAL_INFILE —启用或禁用LOAD DATA LOCAL INFILE 语句-DMYSQL_TCP_PORT —指定服务端口号-DMYSQL_UNIX_ADDR —指定Unix套接字文件的路径-DWITH_INNODB_MEMCACHED —启用或禁用InnoDB 存储引擎对 Memcached 的支持-DWITH_BOOST —指定boost库运行完上述代码如果出现报错检查一下依赖包是否都齐全接着进行编译安装make -j4 make install其中-j选项表示多个线程进行编译这样可以节省时间2、初始化数据库安装完成后运行如下代码groupadd mysql useradd -r -g mysql -s /bin/false mysql cd /usr/local/mysql mkdir -p /usr/local/mysql/data mkdir -p /usr/local/mysql/etc mkdir -p /usr/local/mysql/tmp mkdir -p /usr/local/mysql/logs chown -R mysql:mysql /usr/local/mysql vim /usr/local/mysql/etc/my.cnf解释一下上述代码groupadd mysql #为MySQL创建一个组来管理软件的运行useradd -r-g mysql -s /bin/false mysql #为MySQL创建一个用户来管理软件的运行cd /usr/local/mysql #切换到MySQL的安装路径mkdir -p /usr/local/mysql/data #创建安装前指定的数据存放目录mkdir -p /usr/local/mysql/etc #创建安装前指定的配置文件所在目录mkdir -p /usr/local/mysql/tmp #创建临时文件目录mkdir -p /usr/local/mysql/logs #创建日志文件目录vim /usr/local/mysql/etc/my.cnf #创建编辑配置文件默认也存在配置文件但其中内容较少将以下的配置文件粘贴进去[client] #客户端设置 port3306 #服务器监听端口默认为3306 socket/usr/local/mysql/tmp/mysql.sock #Unix套接字文件路径默认/tmp/mysql.sock [mysqld] #服务端设置 ## 一般配置选项 port3306 #服务器监听端口默认为3306 basedir/usr/local/mysql #MySQL安装根目录 datadir/usr/local/mysql/data #MySQL数据文件目录 socket/usr/local/mysql/tmp/mysql.sock #Unix套接字文件路径默认/tmp/mysql.sock pid-file/usr/local/mysql/tmp/mysql.pid #服务进程pid文件路径 character_set_serverutf8 #默认字符集 default_storage_engineInnoDB #默认InnoDB存储引擎 usermysql ## 连接配置选项 max_connections200 #最大并发连接数 table_open_cache400 #表打开缓存大小默认2000 open_files_limit1000 #打开文件数限制默认5000 max_connect_errors200 #最大连接失败数默认100 back_log100 #请求连接队列数 connect_timeout20 #连接超时时间默认10秒 interactive_timeout1200 #交互式超时时间默认28800秒 wait_timeout600 #非交互超时时间默认28800秒 net_read_timeout30 #读取超时时间默认30秒 net_write_timeout60 #写入超时时间默认60秒 max_allowed_packet8M #最大传输数据字节默认4M thread_cache_size10 #线程缓冲区池大小 thread_stack256K #线程栈大小32位平台196608、64位平台262144 ## 临时内存配置选项 tmpdir/tmp #临时目录路径 tmp_table_size64M #临时表大小默认16M max_heap_table_size64M #最大内存表大小默认16M sort_buffer_size1M #排序缓冲区大小默认256K join_buffer_size1M #join缓冲区大小默认256K ## Innodb配置选项 #innodb_thread_concurrency0 #InnoDB线程并发数 innodb_io_capacity200 #IO容量可用于InnoDB后台任务的每秒I/O操作数IOPS innodb_io_capacity_max400 #IO最大容量InnoDB在这种情况下由后台任务执行的最大IOPS数 innodb_lock_wait_timeout50 #InnoDB引擎锁等待超时时间默认50单位秒 innodb_buffer_pool_size512M #InnoDB缓冲池大小默认128M innodb_buffer_pool_instances4 #InnoDB缓冲池划分区域数 innodb_max_dirty_pages_pct75 #缓冲池最大允许脏页比例默认为75 innodb_flush_methodO_DIRECT #日志刷新方法默认为fdatasync innodb_flush_log_at_trx_commit2 #事务日志刷新方式默认为0 transaction_isolationREPEATABLE-READ #事务隔离级别默认REPEATABLE-READ innodb_data_home_dir/usr/local/mysql/data #表空间文件路径默认保存在MySQL的datadir中 innodb_data_file_pathibdata1:128M:autoextend #表空间文件大小 innodb_file_per_tableON #每表独立表空间 innodb_log_group_home_dir/usr/local/mysql/data #redoLog文件目录默认保存在MySQL的datadir中 innodb_log_files_in_group2 #日志组中的日志文件数默认为2 innodb_log_file_size128M #日志文件大小默认为48MB innodb_log_buffer_size32M #日志缓冲区大小默认为16MB ## MyISAM配置选项 key_buffer_size32M #索引缓冲区大小默认8M read_buffer_size4M #顺序读缓区冲大小默认128K read_rnd_buffer_size4M #随机读缓冲区大小默认256K bulk_insert_buffer_size8M #块插入缓冲区大小默认8M myisam_sort_buffer_size8M #MyISAM排序缓冲大小默认8M #myisam_max_sort_file_size1G #MyISAM排序最大临时大小 myisam_repair_threads1 #MyISAM修复线程 skip-external-locking #跳过外部锁定启用文件锁会影响性能 ## 日志配置选项 log_outputFILE #日志输出目标TABLE输出到表、FILE输出到文件、NONE不输出可选择一个或多个以逗号分隔 log_error/usr/local/mysql/logs/error.log #错误日志存放路径 log_error_verbosity1 #错误日志过滤允许的值为1仅错误2错误和警告3错误、警告和注释默认值为3。 log_timestampsSYSTEM #错误日志消息格式日志中显示时间戳的时区UTC默认值和 SYSTEM本地系统时区 general_logON #开启查询日志一般选择不开启因为查询日志记录很详细会增大磁盘IO开销影响性能 general_log_file/usr/local/mysql/logs/general.log #通用查询日志存放路径 ## 慢查询日志配置选项 slow_query_logON #开启慢查询日志 slow_query_log_file/usr/local/mysql/logs/slowq.log #慢查询日志存放路径 long_query_time2 #慢查询时间默认10单位秒 min_examined_row_limit100 #最小检查行限制检索的行数必须达到此值才可被记为慢查询 log_slow_admin_statementsON #记录慢查询管理语句 log_queries_not_using_indexesON #记录查询未使用索引语句 log_throttle_queries_not_using_indexes5 #记录未使用索引速率限制默认为0不限制 log_slow_slave_statementsON #记录从库复制的慢查询作为从库时生效从库复制中如果有慢查询也将被记录 ## 复制配置选项 server-id1 #MySQL服务唯一标识 log-binmysql-bin #开启二进制日志默认位置是datadir数据目录 log-bin-indexmysql-bin.index #binlog索引文件 binlog_formatMIXED #binlog日志格式分三种STATEMENT、ROW或MIXEDMySQL 5.7.7之前默认为STATEMENT之后默认为ROW binlog_cache_size1M #binlog缓存大小默认32KB max_binlog_cache_size1G #binlog最大缓存大小推荐最大值为4GB max_binlog_size256M #binlog最大文件大小最小值为4096字节最大值和默认值为1GB expire_logs_days7 #binlog过期天数默认为0不自动删除 log_slave_updatesON #binlog级联复制 sync_binlog1 #binlog同步频率0为禁用同步最佳性能但可能丢失事务为1开启同步影响性能但最安全不会丢失任何事务为N操作N次事务后同步1次 relay_logrelay-bin #relaylog文件路径默认位置是datadir数据目录 relay_log_indexrelay-log.index #relaylog索引文件 max_relay_log_size256M #relaylog最大文件大小 relay_log_purgeON #中继日志自动清除默认值为1ON relay_log_recoveryON #中继日志自动恢复 auto_increment_offset1 #自增值偏移量 auto_increment_increment1 #自增值自增量 slave_net_timeout60 #从机连接超时时间 replicate-wild-ignore-tablemysql.% #复制时忽略的数据库表告诉从线程不要复制到与给定通配符模式匹配的表 skip-slave-start #跳过Slave启动Slave复制进程不随MySQL启动而启动 ## 其他配置选项 #memlockON #开启内存锁此选项生效需系统支持mlockall()调用将mysqld进程锁定在内存中防止遇到操作系统导致mysqld交换到磁盘的问题 [mysqldump] #mysqldump数据库备份工具 quick #强制mysqldump从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中 max_allowed_packet16M #最大传输数据字节使用mysqldump工具备份数据库时某表过大会导致备份失败需要增大该值大于表大小即可 [myisamchk] #使用myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查、修复、优化他们 key_buffer_size32M #索引缓冲区大小 myisam_sort_buffer_size8M #排序缓冲区大小 read_buffer_size4M #读取缓区冲大小 write_buffer_size4M #写入缓冲区大小初始化最后一步按照配置文件的内容来创建数据库bin/mysqld --defaults-file/usr/local/mysql/etc/my.cnf --initialize --usermysql3、配置环境变量为MySQL数据库配置环境变量echo export MYSQL_HOME/usr/local/mysql /etc/profile #软件的路径 echo export PATH$MYSQL_HOME/bin:$PATH /etc/profile #命令的路径 source /etc/profile #重新加载系统环境变量配置文件复制配置文件到init.d目录使系统能够使使用systemctl命令管理MySQLcp /usr/src/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysql cd /etc/init.d/ chmod x mysql systemctl daemon-reload systemctl start mysql chkconfig mysql on systemctl status mysql设置软链接,把MySQL的命令都放在默认的命令里面使得可以在系统的任何地方使用MySQL的命令ln -s /usr/local/mysql/bin/* /usr/local/bin/自MySQL5.7版本起MySQL初始有默认密码存放在日志文件当中cat /usr/local/mysql/logs/error.log将冒号之后的内容复制mysql -uroot -p粘贴回车进入之后的第一条命令只能修改密码其他命令均无效set passwordpassword(123456);语法 set passwordpassword(‘新密码’);至此源码包安装MySQL完成可以开始使用数据库了二、yum安装MySQLyum安装和rpm安装较简单安装lrzsz命令使文件能上传到Linux中yum -y install lrzsz将在MySQL官网上下载的适合自己系统版本的yum源上传安装yum源rpm -ivh mysql84-community-release-el7-1.noarch.rpm查看可用的rpm包yum list | grep mysql安装mysql-community-servr即可会自动解决依赖关系yum -y install mysql-community-server开启数据库服务systemctl start mysqld systemctl enable mysqld systemctl status mysqld查看mysql默认密码cat /var/log/mysqld.log | grep password进入MySQLmysql -uroot -p修改密码ALTER USER rootlocalhost IDENTIFIED BY NewPassword!123; FLUSH PRIVILEGES;至此yum安装完成可以开始使用三、rpm安装MySQL同样上传rpm包yum -y install lrzsz由于rpm包的互相依赖关系必须按照如下顺序安装rpm -e mariadb-libs --nodeps rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm下载完成之后启动systemctl start mysqld systemctl enable mysqld systemctl status mysqldcat /var/log/mysqld.log | grep password mysql -uroot -prpm安装方式默认密码策略为8位大小写、数字、符号set passwordpassword(Aa12345);至此安装完成本篇文章到处结束
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2412643.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!