当前位置: 首页 > Linux

mysql8.0.31linux下任意非标准路径安装指南

时间:2023-04-06 05:47:36 Linux

日期作者版本说明2022-10-03dingbinthu@163.comV1.0准备工作:本安装方法描述的场景是:来自mysql官网https://dev.mysql.com/downloads/mysql下载社区版编译好的mysql二进制安装包文件mysql8.0.31适用于通用linux系统(下载时系统要选择:Linux-Generic)(实际是本教程以centos6或centos7)为例Linux下任意非标准目录(/usr或/usr/local等)的安装过程。根据系统的glibc版本选择合适的安装包。下载的版本如下:centos6的glibc版本为2.12,对应的安装包为:mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz。链接地址:https://pan.baidu.com/s/1k4AEWzMmg7Ec_RsOR9eWfg?pwd=zl7p提取码:zl7p或官网下载链接:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz。注:这个版本centos6或者centos7都可以用,一般这个就够用了。centos7的glibc版本为2.17,对应的安装包为:mysql-8.0.31-linux-glibc2.17-x86_64-minimal.tar.xz,官网下载地址:https://cdn.mysql.com//下载/mysql-8.0/mysql-8.0.31-linux-glibc2.17-x86_64-minimal.tar.xz查看centos系统glibc版本的方法如下:ldd--version[root@cent7axmnt]#ldd--versionldd(GNUlibc)2.17strings/lib64/libc.so.6|grepGLIBCll/lib64/libc.so.6[root@cent7axmnt]#ls-lrt/lib64/libc.so.6lrwxrwxrwx1rootroot12Aug2412:29/lib64/libc.so.6->libc-2.17.so注意:高版本glibc自动兼容低版本,也就是说2.12glibc版本的软件也可以安装在2.17版本的glibc系统上。安装过程:以centos7安装到/root/app/mysql8.0的glibc2.12版本mysql安装包为例:PACKAGE_DIR为安装包路径cd/root/appxz-d${PACKAGE_DIR}/mysql-8.0。31-linux-glibc2.12-x86_64.tar.xz#注意:适配glibc2.12版本的安装包可以安装在任何>=2.12版本的glibclinux系统上,这点很重要!!!tarxvfmysql-8.0.31-linux-glibc2.12-x86_64.tarmvmysql-8.0.31-linux-glibc2.12-x86_64mysql8.0cdmysql8.0mkdir数据运行日志#data目录对于mysql数据文件很重要,也可以设置成其他路径touchrun/mysqld.pidlog/mysqld.err#pid文件和??日志文件#mysql配置文件cp${PACKAGE_DIR}/my8.0.cnf_to_my.cnfmy.cnf#或者直接下面《与mysql8.0适配的my.cnf配置文件内容示例》也可以复制到根目录下的my.cnf文件中。在vimmy.cnf中,将${INSTALL_DIR}替换为/root/app/mysql8.0,将${USER}替换为系统用户名,这里是root,修改${PORT}中设置的端口值,本例为8888,防止socket文件与其他同名文件冲突。#第一次初始化mysql数据库数据,记录下root@localhost的密码,第一次登录后必须修改。请注意,初始安装一次只能执行一次。rm-rvfdata/*&&./bin/mysqld--defaults-file=./my.cnf--initialize#第一次启动mysql服务./bin/mysqld_safe--defaults-file=./my.cnf&#启动mysql服务命令#注意:如果启动失败,重要的是通过vimlog/mysqld.err查看启动错误。启动成功后可以运行catrun/mysqld.pid查看mysql服务的进程号,或者使用netstat-nap|grep8888查看mysql服务的端口号。#首次登录mysql后,登录并修改密码,新建root@%用户,授予ALL权限./bin/mysql--defaults-file=./my.cnf-uroot-hlocalhost-P8888-p登录后,执行以下sql语句:ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordby'123456';GRANTALLPRIVILEGESON*.*TO'root'@'localhost'WITHGRANTOPTION;FLUSHPRIVILEGES;#Createroot@%again,andgrantALLpermissionCREATEUSER'root'@'%'IDENTIFIEDWITHmysql_native_passwordby'123456';使用GRANTOPTION将*.*上的所有权限授予'root'@'%';FLUSHPRIVILEGES;exit#Exit#现在可以通过navicat等可视化工具通过root@%访问mysql服务了。#稍后启动mysql客户端。/bin/mysql-uroot-P8888-h127.0.0.1-p#优雅关闭mysql服务:./bin/mysqladmin-uroot-P8888-h127.0.0.1-pshutdown或者:./bin/mysqladmin--defaults-file=./my.cnf-uroot-P8888-pshutdown适用于mysql8.0的my.cnf配置文件内容示例:将文件放在mysql安装根目录下目录。${INSTALL_DIR}修改为mysql安装目录的根路径${USER}修改为linux系统的用户名,需要有写入权限${INSTALL_DIR}/data等目录${PORT}修改到port端口的值,本例中为8888即可。[mysql]default-character-set=utf8mb4[mysqld]port=8888mysqlx_port=8889basedir=${INSTALL_DIR}datadir=${INSTALL_DIR}/datasocket=/tmp/mysql8.0.sock.${PORT}跳过名称-resolveuser=${USER}max_connections=200character-set-server=utf8mb4default-storage-engine=INNODBlower_case_table_names=1ma??x_allowed_pa??cket=128Msql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION[mysqld_safe]log-error=${INSTALL_DIR}/log/mysqld.errpid-file=${INSTALL_DIR}/run/mysqld.piddefault-character-set=utf8mb4[client]socket=/tmp/mysql8.0.sock.${PORT}sql语句示例:mysql-uroot-h127.0.0.1-P8888-p#登录mysql客户端showdatabases;usemysql;showtables;CREATEDATABASEstock_spiderCHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ci;usestock_spider;CREATETABLE`stockstar`(`id`varchar(255)NOTNULL,`type`varchar(100)NOTNULL,`fulllink`varchar(1000)NOTNULL,`url`varchar(1000)NOTNULL,`source`varchar(255)DEFAULTNULL,`title`varchar(1000)NOTNULL,`organization`varchar(1000)DEFAULTNULL,`reportdate`datetime(0)NOTNULL,`authors`varchar(255)DEFAULTNULL,`updatetime`datetime(0)NOTNULL,`downloadedfilepath`varchar(1000)NOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='SecuritiesXXdata';至此数据库名称stock_spider和下表stockstar已经创建成功,接下来就可以通过数据库API对数据库数据进行操作了。推荐的方式是使用java语言的c3p0数据库连接池和commons-dbutils库(底层使用mysql-connector-java驱动)和TxQueryRunner类相关接口方便操作。对应的maven依赖如下:mysqlmysql-connector-java8.0.31com.mchangec3p00.9.5.5commons-dbutilscommons-dbutils1.7