• Linux二进制方式安装mysql8


    项目是银行项目,不能wget+下载地址形式下载安装包,所以下载好安装包进行安装

    查看当前centos版本和内核

    linux版本:centos7.9

    1. cat /etc/redhat-release
    2. cat /proc/version
    3. uname -a

    一.下载

    mysql官网下载地址:https://dev.mysql.com/downloads/mysql/

    上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包,选择第一个二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。


     服务器如果能够连接网络,可以使用wget命令下载

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

    拓展下载:

    下载1:官网

    下载2: 清华大学开源软件镜像站

    从清华的镜像下载了一个gz形式的压缩包mysql-8.0.21-el7-x86_64.tar.gz,版本可以自行选择.

    使用命令解压:tar -zxvf  XXX.tar.gz

    全已存放在百度网盘:链接:https://pan.baidu.com/s/1vOJyW3vlBHKItrwxdaFutw?pwd=cgfy 
    提取码:cgfy

    下载之后,通过ssh工具sftp/ftp方式上传到你服务器centos7指定的目录即可/usr/local/

    通过xftp把安装包上传到服务器

    二.解压,移动,重命名

    1.解压:

    使用命令:tar -Jxf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

    参考:linux xz压缩解压的方法小结 - H5W3

    1. 1. 解压 xz 格式文件
    2. 方法一:
    3. 需要用到两步命令:
    4. 首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,
    5. 其次用 tar 命令将 linux-3.12.tar 完全解压。
    6. xz -d linux-3.12.tar.xz
    7. tar -xf linux-3.12.tar
    8. 方法二(推荐)
    9. tar -Jxf linux-3.12.tar.xz
    10. 2. 创建 xz 格式文件
    11. 方法一:
    12. 也是用到两步命令:
    13. 首先利用 tar 命令将 linux-3.12 文件夹打包成 linux-3.12.tar
    14. 其次用 xz-utils 的 xz 命令将 linux-3.12.tar 压缩成 linux-3.12.tar.xz。
    15. tar -cf linux-3.12.tar linux-3.12/
    16. xz -z linux-3.12.tar
    17. 方法二(推荐)
    18. tar -Jcf linux-3.12.tar.xz linux-3.12/
    19. ###########################################################################
    20. 拓展:解压命令学习
    21. .tar 
    22. 解包:tar xvf FileName.tar
    23. 打包:tar cvf FileName.tar DirName
    24. (注:tar是打包,不是压缩!)
    25. ———————————————
    26. .gz
    27. 解压1:gunzip FileName.gz
    28. 解压2:gzip -d FileName.gz
    29. 压缩:gzip FileName
    30. .tar.gz 和 .tgz
    31. 解压:tar zxvf FileName.tar.gz
    32. 压缩:tar zcvf FileName.tar.gz DirName
    33. ———————————————
    34. .zip
    35. 解压:unzip FileName.zip
    36. 压缩:zip FileName.zip DirName
    37. ———————————————
    38. .rar
    39. 解压:rar x FileName.rar
    40. 压缩:rar a FileName.rar DirName
    41. ———————————————
    42. .bz
    43. 解压1:bzip2 -d FileName.bz
    44. 解压2:bunzip2 FileName.bz
    45. 压缩:未知
    46. .tar.bz
    47. 解压:tar jxvf FileName.tar.bz
    48. 压缩:未知
    49. ———————————————

    2.移动

    若上传的地方不是/usr/local/路径可以用mv命令移动

    mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/

    3.重命名

    mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql
    

    三.添加用户和组

    1. #进入到安装目录
    2. [root@hecs-412019 local]# cd /usr/local/mysql/
    3. #创建组
    4. [root@hecs-412019 mysql]# groupadd mysql
    5. #创建用户
    6. [root@hecs-412019 mysql]# useradd -r -g mysql mysql
    7. #设置/usr/local/mysql/文件夹的拥有者
    8. [root@hecs-412019 mysql]# chown -R mysql:mysql ./

    四.初始化mysql数据库,生成默认密码

    1. #创建数据库文件存放的文件夹。这个文件夹将来存放每个数据库的库文件
    2. [root@hecs-412019 mysql]# mkdir data
    3. #执行命令,
    4. [root@hecs-412019 mysql]# bin/mysqld --initialize --user=mysql --lower_case_table_names=1 --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
    5. #参数说明
    6. #--user=mysql 指定用户
    7. #--basedir=/usr/local/mysql/ 指定安装目录
    8. #--datadir=/usr/local/mysql/data/ 指定初始化数据目录
    9. #注:有些centos版本缺少libaio.so.1文件,就会执行不成功,使用yum install -y libaio安装
    10. #设置数据库存储文件夹的拥有者
    11. [root@hecs-412019 mysql]# chown -R root:root ./
    12. [root@hecs-412019 mysql]# chown -R mysql:mysql data

     

     记住初始密码,后面登录时使用

    五.修改配置

    默认读取配置文件的顺序:
    1. /etc/my.cnf
    2./etc/mysql/my.cnf  
    3./usr/local/mysql/etc/my.cnf  
    4.~/.my.cnf


    修改mysql配置文件
     

    [root@hecs-412019 mysql]# vi /etc/my.cnf 

    修改mysql配置文件,将里面的命令都删除掉,然后添加以下命令,保存并退出

    1. [mysql]
    2. # 设置mysql客户端默认字符集
    3. default-character-set=utf8
    4. [mysqld]
    5. # 设置3306端口
    6. port=3306
    7. # 设置mysql的安装目录
    8. basedir=/usr/local/mysql
    9. # 设置mysql数据库的数据的存放目录
    10. datadir=/usr/local/mysql/data
    11. # 允许最大连接数
    12. max_connections=1500
    13. # 服务端使用的字符集默认为8比特编码的latin1字符集
    14. character-set-server=utf8
    15. # 创建新表时将使用的默认存储引擎
    16. default-storage-engine=INNODB
    17. # 默认使用"mysql_native_password"插件认证
    18. default_authentication_plugin=mysql_native_password
    19. # 区分大小写,0区分,1不区分,填写这个配置前提是在initialize初始化数据库的时候加参数--lower_case_table_names=1,否则报错
    20. lower_case_table_names=1
    21. [client]
    22. # 设置mysql客户端连接服务端时默认使用的端口
    23. default-character-set=utf8

    编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 :wq

     lower_case_table_names参数说明
            MySQL8.0 新增了data dictionary的概念,数据初始化的时候在linux下默认使用lower_case_table_names=0的参数,数据库启动的时候读取的my.cnf文件中的值。若二者值不一致则在mysql的错误日志中记录报错信息。而在MySQL 5.7之前则允许数据库初始化和启动的值不一致且以启动值为准,修改数据库默认策略,要在 mysql8.0安装完成之后,第一次启动初始化之前,否则会启动报错,无法启动。
            简单来说就是,unix默认是0,windows默认是1,mac是2,0是区分大小写的,1是不区分的,也就是windows是默认不区分大小写的。翻阅资料,都是说在配置文件配置lower_case_table_names=1,重启服务可以解决问题。后来经过查阅mysql官方文档资料发现:该解决方案只能在5.6/5.7低版本的mysql中有效。但是在8.0版本下是行不通的,就算怎么做lower_case_table_names变量也没有得到更新。也就是说在8.0版本,你的mysql已经初始化过就不支持修改lower_case_table_names参数了!

    https://blog.csdn.net/qq_26007225/article/details/121172462

    六.启动mysql服务

    1. [root@hecs-412019 mysql]# cd /usr/local/mysql/support-files
    2. [root@hecs-412019 support-files]# ./mysql.server start
    3. #如果执行有问题
    4. [root@hecs-412019 support-files]# chmod -R 777 /usr/local/mysql

    如果您的安装包含systemd支持,请按以下方式启动服务器:

    1. 1. systemctl {start|stop|restart|status} mysqld
    2. 启动:systemctl start mysqld
    3. 停止:systemctl stop mysqld
    4. 重启:systemctl restart mysqld
    5. 查看状态systemctl status mysql
    6. 2. 使用与System V系统兼容的service命令(具有相反的参数):
    7. service mysqld {start|stop|restart|status}
    8. 启动:service mysqld start
    9. 停止:service mysqld stop
    10. 重启:service mysqld restart
    11. 重载配置:service mysqld reload

    七.其他操作

    1.查看是否启动
     

    1. ps -ef|grep mysql #查看mysql 进程
    2. netstat -ano |grep "3306" #查看3306端口

    2.修改root用户登录密码

    1. [root@hecs-412019 bin]# cd /usr/local/mysql/bin/
    2. [root@hecs-412019 bin]# ./mysql -u root -p


    执行后,输入我们初始化时记录下的随机密码,就会进入mysql

    1. mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
    2. #设置允许远程登录
    3. mysql> use mysql;
    4. mysql> update user set user.Host='%'where user.User='root';
    5. mysql> flush privileges;
    6. mysql> quit;

    3.设置mysql自启动

    1. #将mysql添加到系统进程中
    2. [root@hecs-412019 bin]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    3. [root@hecs-412019 bin]# chown 777 /etc/my.cnf
    4. [root@hecs-412019 bin]# chmod +x /etc/init.d/mysqld
    5. ???
    6. [root@hecs-412019 bin]# systemctl enable mysqld

     重启linux后测试自启动(可选)

    [root@hecs-412019 support-files]# reboot

    4.查看防火墙开放端口

    1. [root@hecs-412019 bin]# firewall-cmd --list-all
    2.  在防火墙中将3306端口开放
    3. [root@hecs-412019 bin]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    4. [root@hecs-412019 bin]# firewall-cmd --reload 
    5.  //--permanent为永久生效,没有此参数 服务器重启后配置失效

    5.设置环境变量(可选)

    1. vim /etc/profile
    2. export MYSQL_HOME="/usr/local/mysql"
    3. export PATH="$PATH:$MYSQL_HOME/bin"
    4. #保存退出
    5. . /etc/profile
    6. #让配置文件立马生效
    7. source /etc/profile

    参考:

    Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)_m0_67401835的博客-CSDN博客_centos7编译安装mysql8

    Linux 安装mysql8详细教程_sh_c_1314的博客-CSDN博客_linux安装mysql8

    Linux下安装mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz_IT_YaoBlog的博客-CSDN博客_linux安装mysql8.0.13

  • 相关阅读:
    软件工程(Software Engineering)
    从0开始python学习-25.selenium 下拉框、滚动、警告框、设置cookie信息
    【QT小记】QT中信号和槽的基本使用
    Maven生命周期
    直播平台源码开发搭建APP的DASH协议:流媒体技术其中一环
    飞利浦Fidelio B97全景声家庭影院,让你在家享受“暑期档”
    Codeforces Beta Round 5
    qt5.12.9编译32位的qtwebengin模块
    企业架构LNMP学习笔记23
    OCR-paddleocr
  • 原文地址:https://blog.csdn.net/qq877507054/article/details/126077442