Centos7安装mysql8(tar)

本文介绍MySQL 8.0在Linux系统的安装步骤,包括下载、解压、配置等过程,并解决常见问题如root登录、客户端远程连接错误及用户管理等。

一. 官网下载linux-generic通版本

 执行:wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

 

 

二. 解压安装以及相关细节

 1     //如果觉得比较麻烦可以yum安装(另一篇博文):https://www.cnblogs.com/laoyin666/p/10171095.html
//MySQL has a dependency on the libaio library 2 //检查依赖包 3 yum search libaio # search for info 4 yum install libaio # install library 5 // 添加一个用户组 6 groupadd mysql 7 //创建mysql用户并加入mysql组 8 useradd -r -g mysql -s /bin/false mysql
    (注意:Because the user is required only for ownership purposes, not login purposes,
     the useradd command uses the -r and -s /bin/false options to create a user that
     does not have login permissions to your server host.
     Omit these options if your useradd does not support them.
9 // 解压文件 10 cd /usr/local 11 tar zxvf mysql-VERSION-OS.tar.gz 12 mv mysql-VERSION-OS.tar.gz mysql 13 // 创建一个连接,(可选) 14 ln -s full-path-to-mysql-VERSION-OS mysql 15 // chown命令改变某个文件或目录的所有者和所属的组 16 cd mysql 17 chown -R root:root ./ 18 chown -R mysql:mysql data
    chmod 755 ./data
19 // 初始化 20 bin/mysqld --initialize --user=mysql(配置好my.cnf后,这里就不需要过多的参数了,初始化成功,后给一个临时的密码) 21 // 开启加密连接 22 bin/mysql_ssl_rsa_setup 23 // 启动 24 /usr/local/mysql/support-files/mysql.server start (未更新pid文件,可以自己制定pid文件,然后重新初始化一下-确保初始化时存放mysql数据的data目录为空)

 

三.配置文件(根据需要配置)

  发现没有my.cnf可以自己创建,并放在/etc中

1   user=mysql
2   character_set_server = utf8
3   basedir=/usr/local/mysql
4   datadir=/usr/local/mysql/data
5   pid-file=/usr/local/mysql/data/iz2ze2t0ob6ppkgpmww0unz.pid
6   log-error=iz2ze2t0ob6ppkgpmww0unz.err 

 

四. 问题解决

  1).root无法登陆

    原因:mysql8使用新的加密规则caching_sha2_password (之前使用的是mysql_native_password) 同事废弃了密码字段password改用authentication_string

   解决:启动时跳过验证: ./mysqld_safe --skip-grant-tables &(不是后台程序) ,然后回车后登陆root(无密码) ,置空root的authentication_string字段,再修改密码

     
1   update user set authentication_string='' where user='root';
2 
3     ALTER user 'root'@'localhost' IDENTIFIED BY 'Admin123#';
4 
5   (修改密码时,不要用update,因为authentication_string字段下只能是mysql加密后的41位字符串密码)
6 
7   (或者在my.cnf中加入skip-grant-tables登陆root)

 

       2)客服端远程连接错误: authentication plugin 'caching_sha2_password'

    原因:mysql8新的加密规则

    解决:第一种 修改配置文件my.cnf 加入      

         default_authentication_plugin=mysql_native_password

       第二种专门创建一个以前版本的规则的账号,用于远程连接(官方推荐)

1             create user 'your username'@'%' identified with mysql_native_password by 'pwd'
2 
3        grant all privileges on *.* to yourUsername@'%' with grant option;
4 
5        flush privileges

     备注:select host, user, authentication_string, plugin from user; // 查看系统user表信息

       3)删除用户之后,重新创建失败

    delete之后,flush privileges。不行的话,重新drop一遍,再flush privileges

另:新的连接url方式参考:

// 驱动包升级: mysql-connector-java-8.0.11.jar
// JDBC driver 由“com.mysql.jdbc.Driver”改为“com.mysql.cj.jdbc.Driver”
jdbc.url=jdbc:mysql://127.0.0.1:3306?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=UTC

 

转载于:https://www.cnblogs.com/laoyin666/p/9278645.html

### CentOS 7 上通过 `.tar` 文件安装 MySQL 的教程 #### 准备工作 确保服务器已更新至最新状态并关闭防火墙和 SELinux,以减少不必要的干扰。 #### 下载 MySQL 安装包 访问 MySQL 官方网站获取适用于 Linux 平台的通用二进制分发版。对于本指南而言,选择的是 `mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz` 版本[^2]。 ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz ``` 将下载好的文件传输到 `/usr/local` 目录下准备解压。 #### 创建必要的用户组与用户 为了安全起见,在安装前创建一个新的名为 `mysql` 的用户及其同名群组用于运行数据库服务进程: ```bash groupadd mysql useradd -s /bin/false mysql ``` #### 解压缩软件包 切换到目标路径执行如下指令完成解档操作,并建立软链接方便后续调用: ```bash cd /usr/local/ tar xf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz ln -snf mysql-8.0.36-linux-glibc2.17-x86_64 mysql ``` #### 初始化数据目录 首次启动之前需初始化实例的数据存储位置,默认情况下位于 `$basedir/data` 中;这里建议指定自定义路径如 `/data/mysql-data` 来存放实际业务产生的记录集: ```bash mkdir -pv /data/mysql-data/{,log,tmp} chown -Rv mysql:mysql /data/mysql-data/ # 执行初始化脚本 /usr/local/mysql/bin/mysqld --datadir=/data/mysql-data \ --tmpdir=/data/mysql-data/tmp \ --explicit_defaults_for_timestamp=ON \ --loose_innodb_buffer_pool_size=512M \ --lower_case_table_names=1 \ --max_allowed_packet=64M \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci \ --skip-log-bin \ --default-authentication-plugin=mysql_native_password \ --pid-file=/var/run/mysqld.pid \ --socket=/var/lib/mysql/mysql.sock \ --port=3306 \ --bind-address=localhost \ --innodb_flush_method=O_DIRECT \ --innodb_file_per_table=ON \ --sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ``` 注意:上述配置参数可根据具体需求调整优化。 #### 配置环境变量 为了让系统能够识别新安装的服务程序的位置,编辑全局 shell profile 文件追加 PATH 变量声明语句: ```bash echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh ``` 此时可以尝试输入 `which mysqld_safe` 测试是否生效。 #### 设置开机自动加载项和服务管理器集成 编写 Systemd 单元描述文档以便于日后维护控制: ```ini [Unit] Description=MySQL Server After=syslog.target network-online.target Wants=network-online.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/support-files/mysql.server start ExecStop=/usr/local/mysql/support-files/mysql.server stop Restart=no PrivateTmp=false LimitMEMLOCK=infinity TimeoutSec=300 [Install] WantedBy=multi-user.target ``` 保存为 `/lib/systemd/system/mysqld.service` 后重新加载守护进程规则库使更改立即可用: ```bash systemctl daemon-reload systemctl enable mysqld ``` #### 修改默认权限设置 出于安全性考虑修改部分敏感资源读写属性防止未授权访问: ```bash chmod g-w,o-rwx /usr/local/mysql find /usr/local/mysql -type d -exec chmod 750 {} \; find /usr/local/mysql -type f -exec chmod 640 {} \; chown -R root:root /usr/local/mysql chown -R mysql:mysql /usr/local/mysql/data ``` #### 更改初始密码策略 由于采用无密模式 (`--initialize-insecure`) 进行了初次设定,因此强烈推荐尽快登录进去重设管理员账户凭证信息: ```bash mysqladmin -uroot password "new_strong_root_password" ``` 或者直接进入交互界面手动变更: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_root_password'; FLUSH PRIVILEGES; ``` 至此整个部署流程宣告结束,现在应该已经可以在本地成功连接测试新的 MySQL 实例啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值