centos7 mysql libssl_Centos7 安装 Mysql5.7

1. 下载安装包进入 MySQL 官网: https://dev.mysql.com/downloads/mysql/这里选择的是 5.7 Linux-Generic 版本进入服务器目录: cd /usr/local下载 tar 包: wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x8...
摘要由CSDN通过智能技术生成

1. 下载安装包

进入 MySQL 官网: https://dev.mysql.com/downloads/mysql/

这里选择的是 5.7 Linux-Generic 版本

进入服务器目录: cd /usr/local

下载 tar 包: wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

2.安装

先解压下载好的文件:tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

然后重命名目录 mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

为 MySQL 添加新的用户和用户组:

添加用户组: groupadd mysql

添加 MySQL 用户到用户组 MySQL: useradd -r -g mysql mysql //添加完成后可用 id MySQL 查看

添加完成后修改下文件的用户和用户组: cd mysql chown -R mysql:mysql ./

b418eee27ee34658bb5df2e7a93d5378_image.png

初始化 MySQL: bin/mysqld –-initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

c45c75b4ab824da381deb558be3020a1_image.png

这里需要把初始化最后生成的临时密码记录下来,等会登录的时候会用到。

初始化时候可能会报错:error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

原因:yum 安装的 libnuma.so.1,但安装时默认安装的是 32 的,但 db2 需要的是 64 位的

解决: 有的话先卸载试试: yum remove libnuma.so.1 然后安装: yum -y install numactl.x86_64

还有一种解决办法: 直接 yum install -y libaio ,安装完成后初始化就 ok 了

初始化完成后执行以下命令创建 RSA private key: bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

然后修改当前目录拥有者为 MySQL 用户: chown -R mysql:mysql ./

修改当前 data 目录拥有者为 MySQL 用户: chown -R mysql:mysql data

配置 my.cnf: vi /etc/my.cnf

这里贴上内容:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

#不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格)

lower_case_table_names = 1

log-error=/var/log/mysqld.log

pid-file=/usr/local/mysql/data/mysqld.pid

3.添加开机启动

复制脚本文件: cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

修改: vi /etc/init.d/mysqld

修改项:basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

e2fa701af4f745b99cf4adc47fded1ce_image.png

设置文件为服务运行级别 chkconfig --add mysqld

设置为开机自启动: chkconfig mysqld on

额外说明:

查看 chkconfig 的管理:chkconfig --list

删除 chkconfig 上的 MySQL 管理:chkconfig --del mysqld

关闭 MySQL 服务自启动: chkconfig mysqld off

4. 测试结果

启动 MySQL: service mysqld start

登录 MySQL: mysql -u root -p 然后输入刚才的临时密码

bd65135afb644493b087da7eb770f411_image.png

报错:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

5485a11ddbe3488395b9ee4e08af25df_image.png

分析原因:无法通过 socket 文件/var/lib/mysql/mysql.sock 连接到 MySQL 服务器,也就是说对于 MySQL 程序来说,尽管在 my.cnf 里指定了 socket,但是对于 MySQL 还是会从默认的安装目录/var/lib/mysql/里找这个 mysql.sock 文件,找不着,就不知道从哪里启动了。

解决: 做个软连接: ln -s /tmp/mysql.sock /var/lib/mysql/

报错:ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

f55ae31f327041c5b682b108376fc01f_image.png

原因: 密码过期

解决: 用忽略授权表的方法进入 MySQL: vi /etc/my.cnf

在最后添加: skip-grant-tables

保存后重启 MySQL: service mysqld restart

然后进入 MySQL 查看 root 用户的详细信息: mysql -uroot -p

进入 MySQL 后: use mysql;

select * from mysql.user where user='root' \G

18b52a2e417648238e9fe8f7a22a2e5b_image.png

把 passwordexpired 改成不过期: update user set password_expired='N' where user='root';

刷新: flush privileges;

退出: quit

把 /etc/my.cnf 的 skip-grant-tables 这行去掉,,然后重启 MySQL: service mysqld restart

再次登录就正常啦

进入后先修改下 root 用户密码: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

4.远程访问 MySQL

进入 MySQL 后 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

即允许 root 用户在任何地方进行远程登录,并具有所有库任何操作权限;

刷新: FLUSH PRIVILEGES;

然后退出: quit

然后用 Navicat for MySQL 连接,连接成功:

885c79893ca84c62bb6bb186771504aa_image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值