浅析CentOS6.8安装MySQL8.0.18的教程(RPM方式)
今天,记录下在CentOS6.8服务器上如何安装MySQL8.0.18,废话不多说了,直接进入主题。
一、卸载CentOS6.8自带的MySQL
首先,卸载CentOS6.8服务器上自带的MySQL,在命令行中输入如下命令查看CentOS6.8服务器自带的MySQL。
[root@binghe151src]#rpm-qa|grep-imysql mysql-libs-5.1.73-7.el6.x86_64
可以看到,CentOS6.8服务器中默认安装了mysql-libs-5.1.73-7.el6.x86_64,接下来将mysql-libs-5.1.73-7.el6.x86_64卸载,如下所示。
[root@binghe151src]#rpm-emysql-libs-5.1.73-7.el6.x86_64--nodeps [root@binghe151src]#
再次查看CentOS6.8服务器自带的MySQL,如下所示。
[root@binghe151src]#rpm-qa|grep-imysql [root@binghe151src]#
说明CentOS6.8服务器自带的MySQL卸载成功。
二、安装MySQL依赖环境
正式安装MySQL之前,首先需要安装MySQL的依赖的基础环境,如下所示。
yum-yinstallwgetgcc-c++ncursesncurses-develcmakemakeperlbisonopensslopenssl-develgcc*libxml2libxml2-develcurl-devellibjpeg*libpng*freetype*makegcc-c++cmakebison-develncurses-develbisonperlperl-develperlperl-develnet-tools*numactl*
三、添加mysql用户
在命令行执行如下命令添加mysql用户。
groupaddmysql useradd-gmysqlmysql
四、下载并安装MySQL的RPM安装包
首先,在CentOS6.8服务器的命令行执行如下命令下载MySQL8.0.18的RPM安装包。
wgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-1.el6.x86_64.rpm-bundle.tar
接下来,查看下载的MySQL8.0.18的RPM安装包,如下所示
[root@binghe151src]#ll total744876 -rw-r--r--.1rootroot762746880Nov1814:32mysql-8.0.18-1.el6.x86_64.rpm-bundle.tar
接下来,将下载的安装包解压,如下所示。
[root@binghe151src]#tarxvfmysql-8.0.18-1.el6.x86_64.rpm-bundle.tar mysql-community-client-8.0.18-1.el6.x86_64.rpm mysql-community-test-8.0.18-1.el6.x86_64.rpm mysql-community-server-8.0.18-1.el6.x86_64.rpm mysql-community-libs-compat-8.0.18-1.el6.x86_64.rpm mysql-community-common-8.0.18-1.el6.x86_64.rpm mysql-community-devel-8.0.18-1.el6.x86_64.rpm mysql-community-libs-8.0.18-1.el6.x86_64.rpm
接下来,按照顺序依次安装
mysql-community-common-8.0.18-1.el6.x86_64.rpm mysql-community-libs-8.0.18-1.el6.x86_64.rpm mysql-community-client-8.0.18-1.el6.x86_64.rpm mysql-community-server-8.0.18-1.el6.x86_64.rpm
安装时,需要严格按照上述顺序进行安装。
首先,安装mysql-community-common-8.0.18-1.el6.x86_64.rpm,如下所示。
[root@binghe151src]#rpm-ivhmysql-community-common-8.0.18-1.el6.x86_64.rpm warning:mysql-community-common-8.0.18-1.el6.x86_64.rpm:HeaderV3DSA/SHA1Signature,keyID5072e1f5:NOKEY Preparing...###########################################[100%] 1:mysql-community-common###########################################[100%]
接下来,安装mysql-community-libs-8.0.18-1.el6.x86_64.rpm,如下所示。
[root@binghe151src]#rpm-ivhmysql-community-libs-8.0.18-1.el6.x86_64.rpm warning:mysql-community-libs-8.0.18-1.el6.x86_64.rpm:HeaderV3DSA/SHA1Signature,keyID5072e1f5:NOKEY Preparing...###########################################[100%] 1:mysql-community-libs###########################################[100%]
接下来,安装mysql-community-client-8.0.18-1.el6.x86_64.rpm,如下所示。
[root@binghe151src]#rpm-ivhmysql-community-client-8.0.18-1.el6.x86_64.rpm warning:mysql-community-client-8.0.18-1.el6.x86_64.rpm:HeaderV3DSA/SHA1Signature,keyID5072e1f5:NOKEY Preparing...###########################################[100%] 1:mysql-community-client###########################################[100%]
最后,安装mysql-community-server-8.0.18-1.el6.x86_64.rpm,如下所示。
[root@binghe151src]#rpm-ivhmysql-community-server-8.0.18-1.el6.x86_64.rpm warning:mysql-community-server-8.0.18-1.el6.x86_64.rpm:HeaderV3DSA/SHA1Signature,keyID5072e1f5:NOKEY Preparing...###########################################[100%] 1:mysql-community-server###########################################[100%]
如果大家在安装mysql-community-server-8.0.18-1.el6.x86_64.rpm的时候报错,如下所示。
[root@binghe151src]#rpm-ivhmysql-community-server-8.0.18-1.el6.x86_64.rpm warning:mysql-community-server-8.0.18-1.el6.x86_64.rpm:HeaderV3DSA/SHA1Signature,keyID5072e1f5:NOKEY error:Faileddependencies: libnuma.so.1()(64bit)isneededbymysql-community-server-8.0.18-1.el6.x86_64 libnuma.so.1(libnuma_1.1)(64bit)isneededbymysql-community-server-8.0.18-1.el6.x86_64 libnuma.so.1(libnuma_1.2)(64bit)isneededbymysql-community-server-8.0.18-1.el6.x86_64
可以看到,缺少libnuma库,执行如下命令安装libnuma。
yuminstallnumactl*-y
执行命令后,再次安装mysql-community-server-8.0.18-1.el6.x86_64.rpm即可。
五、初始化MySQL数据
首先,来说一下MySQL官方对运行MySQL的限制。
在MySQL8.x中,初始化数据需要确保数据库目录与文件的所有者为mysql登录账户。如果以root身份运行mysqld服务,就需要确认一下,执行如下所示的包含有--user选项的命令:
shell>bin/mysqld--initialize--user=mysql shell>bin/mysqld--initialize-insecure--user=mysql
如果是以mysql的账户登录并执行程序的情况下,可以将--user选项从命令中去掉,如下所示。
shell>bin/mysqld--initialize shell>bin/mysqld--initialize-insecure
通过以上MySQL官方的对运行MySQL的限制,可以得出。
如果以root用户身份登录CentOS6.8服务器,可以执行如下命令。
mysqld--initialize--user=mysql mysqld--initialize-insecure--user=mysql
如果以mysql用户身份登录CentOS6.8服务器,可以执行如下命令。
mysqld--initialize mysqld--initialize-insecure
因为我这里使用的是root账户登录CentOS6.8服务器,所以,初始化数据库时,我执行的是如下命令。
mkdir-p/usr/local/mysql chown-Rmysql.mysql/usr/local/mysql mysqld--initialize--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data
注意:这里,我在执行mysqld--initialize命令时,指定了MySQL的安装目录。在MySQL的安装过程中,建议指定MySQL的安装目录。当/usr/local/mysql目录下存在data目录时,会初始化失败,必须确保/usr/local/mysql下没有data目录。
六、启动MySQL
在CentOS6.8服务器命令行输入如下命令启动MySQL服务。
[root@binghe151src]#servicemysqldstart Startingmysqld: [OK]
启动MySQL时,会为MySQL的root账户生成临时登录密码,这个密码可以在/var/log/mysqld.log文件中查看,使用vim编辑器打开/var/log/mysqld.log文件,如下所示。
vim/var/log/mysqld.log 2019-11-18T08:16:08.162464Z0[System][MY-013169][Server]/usr/sbin/mysqld(mysqld8.0.18)initializingofserverinprogressasprocess2111 2019-11-18T08:16:12.451542Z5[Note][MY-010454][Server]Atemporarypasswordisgeneratedforroot@localhost:-8cagKkdK#5G 2019-11-18T08:17:13.269505Z0[System][MY-010116][Server]/usr/sbin/mysqld(mysqld8.0.18)startingasprocess2378 2019-11-18T08:17:16.568836Z0[Warning][MY-010068][Server]CAcertificateca.pemisselfsigned. 2019-11-18T08:17:16.642494Z0[System][MY-010931][Server]/usr/sbin/mysqld:readyforconnections.Version:'8.0.18'socket:'/var/lib/mysql/mysql.sock'port:3306MySQLCommunityServer-GPL. 2019-11-18T08:17:16.652000Z7[Warning][MY-013360][Server]Pluginsha256_passwordreported:''sha256_password'isdeprecatedandwillberemovedinafuturerelease.Pleaseusecaching_sha2_passwordinstea d' 2019-11-18T08:17:16.801986Z0[System][MY-011323][Server]XPluginreadyforconnections.Socket:'/var/run/mysqld/mysqlx.sock'bind-address:'::'port:33060
找到如下一行代码。
2019-11-18T08:16:12.451542Z5[Note][MY-010454][Server]Atemporarypasswordisgeneratedforroot@localhost:-8cagKkdK#5G
可以看到,启动MySQL时生成的临时登录密码为-8cagKkdK#5G。
七、登录MySQL
使用临时密码登录MySQL,如下所示。
[root@binghe151src]#mysql-uroot-p-8cagKkdK#5G mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure. WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis9 Serverversion:8.0.18 Copyright(c)2000,2019,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>
此时,在MySQL命令行执行SQL语句报错,要求重置密码,如下所示。
mysql>SHOWDATABASES; ERROR1820(HY000):YoumustresetyourpasswordusingALTERUSERstatementbeforeexecutingthisstatement. mysql>usemysql; ERROR1820(HY000):YoumustresetyourpasswordusingALTERUSERstatementbeforeexecutingthisstatement. mysql>
接下来,修改MySQL的root账户密码,如下所示。
mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'root'; QueryOK,0rowsaffected(0.03sec) mysql>FLUSHPRIVILEGES; QueryOK,0rowsaffected(0.00sec)
接下来,在MySQL命令行输入exit命令退出MySQL。使用修改后的root密码重新登录MySQL,如下所示。
mysql>exit Bye [root@binghe151src]#mysql-uroot-proot mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure. WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis10 Serverversion:8.0.18MySQLCommunityServer-GPL Copyright(c)2000,2019,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>
说明,MySQL的root账户密码修改成功。
接下来,再次在MySQL命令行执行SQL语句,如下所示。
mysql>SHOWDATABASES; +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |sys| +--------------------+ 4rowsinset(0.36sec) mysql>USEmysql; Readingtableinformationforcompletionoftableandcolumnnames Youcanturnoffthisfeaturetogetaquickerstartupwith-A Databasechanged mysql>
可以看到,修改MySQL的root账户密码后,可以在MySQL命令行正确执行SQL语句。
八、使用rpm安装MySQL的默认目录
1、数据库目录
/var/lib/mysql/
2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)
3、相关命令
/usr/bin(mysqladminmysqldump等命令)
4、启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
九、配置my.cnf文件
MySQL8.0默认没有my.cnf,可以手动在/etc目录下创建my.cnf文件,如果是以如下指定MySQL目录的命令初始化数据。
mkdir-p/usr/local/mysql chown-Rmysql.mysql/usr/local/mysql mysqld--initialize--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data 则可以将my.cnf文件配置成如下所示。 [client] port=3306 #根据实际情况调整mysql.sock配置 socket=/tmp/mysql.sock [mysqld] #Mysql服务的唯一编号每个mysql服务Id需唯一 server-id=1 #服务端口号默认3306 port=3306 #mysql安装根目录 basedir=/usr/local/mysql #mysql数据文件所在位置 datadir=/usr/local/mysql/data #pid pid-file=/usr/local/mysql/mysql.pid #设置socke文件所在目录 socket=/tmp/mysql.sock #设置临时目录 tmpdir=/tmp #用户 user=mysql #允许访问的IP网段 bind-address=0.0.0.0 #跳过密码登录 #skip-grant-tables #主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容 skip-external-locking #只能用IP地址检查客户端的登录,不用主机名 skip_name_resolve=1 #事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能) transaction_isolation=READ-COMMITTED #数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节) character-set-server=utf8mb4 #数据库字符集对应一些排序等规则,注意要和character-set-server对应 collation-server=utf8mb4_general_ci #设置client连接mysql时的字符集,防止乱码 init_connect='SETNAMESutf8mb4' #是否对sql语句大小写敏感,1表示不敏感 lower_case_table_names=1 #最大连接数 max_connections=400 #最大错误连接数 max_connect_errors=1000 #TIMESTAMP如果没有显示声明NOTNULL,允许NULL值 explicit_defaults_for_timestamp=true #SQL数据包发送的大小,如果有BLOB对象建议修改成1G max_allowed_packet=128M #MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭 #MySQL默认的wait_timeout值为8个小时,interactive_timeout参数需要同时配置才能生效 interactive_timeout=1800 wait_timeout=1800 #内部内存临时表的最大值,设置成128M。 #比如大数据量的groupby,orderby时可能用到临时表, #超过了这个值将写入磁盘,系统IO压力增大 tmp_table_size=134217728 max_heap_table_size=134217728 #禁用mysql的缓存查询结果集功能 #后期根据业务情况测试决定是否开启 #大部分情况下关闭下面两项 query_cache_size=0 query_cache_type=0 #数据库错误日志文件 log_error=error.log #慢查询sql日志设置 slow_query_log=1 slow_query_log_file=slow.log #检查未使用到索引的sql log_queries_not_using_indexes=1 #针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数 log_throttle_queries_not_using_indexes=5 #作为从库时生效,从库复制中如何有慢sql也将被记录 log_slow_slave_statements=1 #慢查询执行的秒数,必须达到此值可被记录 long_query_time=8 #检索的行数必须达到此值才可被记为慢查询 min_examined_row_limit=100 #mysqlbinlog日志文件保存的过期时间,过期后自动删除 expire_logs_days=5
总结
以上所述是小编给大家介绍的CentOS6.8安装MySQL8.0.18的教程(RPM方式),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。