centos8上安装mysql5.6

1.下载5.6

选择5.6.45,Red Hat Enterprise Linux,Linux 7

https://dev.mysql.com/downloads/mysql/5.6.html

直接地址:
https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.45-1.el7.x86_64.rpm-bundle.tar

2.解压

tar -xvf MySQL-5.6.45-1.el7.x86_64.rpm-bundle.tar

3.安装

#先卸载
rpm -ev MySQL-client-5.6.45-1.el7.x86_64 --nodeps
rpm -ev MySQL-devel-5.6.45-1.el7.x86_64 --nodeps
rpm -ev MySQL-server-5.6.45-1.el7.x86_64 --nodeps
找到残留 一并删除
find / -name mysql
#后安装 rpm
-ivh MySQL-client-5.6.45-1.el7.x86_64.rpm rpm -ivh MySQL-devel-5.6.45-1.el7.x86_64.rpm rpm -ivh MySQL-server-5.6.45-1.el7.x86_64.rpm

安装遇到
libncurses.so.5()(64bit) is needed by MySQL-client-5.6.47-1.el6.x86_64以及 libtinfo.so.5()(64bit) is needed by MySQL-client-5.6.47-1.el6.x86_64
安装
yum install libtinfo*
yum install libncurses*

4.启动

systemctl start  mysql
若启动失败,无权限
mkdir -p /usr/bin/mysql

5.修改密码

# 获得密码
cat /root/.mysql_secret

# 登录
mysql -uroot -p'上一步获得的密码'

# 修改密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

6.授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

7.问题

问题一:
版本5.6.45,[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!此处 mysql是出于安全考虑,默认拒绝用root账号启动mysql服务

1.通过在命令后面加上--user=root 进行强制使用root账号启动

mysqld --user=root

2.使用一个普通用户进行启动mysqld 。这个用户必须是属于mysqld用户组,且在my.cnf文件中。使用 vi /etc/my.cnf

加上user=mysql  进行指定mysql用户来启动mysql服务,或者直接加上user=root 

[设置权限]

使用下面的命令查看是否有mysql用户及用户组

$ cat /etc/passwd    #查看用户列表

$ cat /etc/group      #查看用户组列表

如果没有就创建

$ groupadd mysql

$ useradd -g mysql mysql

修改/usr/local/mysqld权限

$ chown -R mysql:mysql /usr/local/mysqld 
mysql用户不可用

查看Linux所有用户的状态信息
cat /etc/passwd |awk -F’:’ ‘{print $1}’ |xargs -i passwd -S {}

#su mysql
发现无法切换,提示为:This account is currently not available
看看mysql的帐号信息
#more /etc/passwd 
mysql:x:502:504::/home/mysql:/sbin/nologin
把shell是"/sbin /nologin",改成"/bin/bash" 即可
在linux安装mysql重启提示You must SET PASSWORD before executing this statement的解决方法

mysql> show databases;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
5 rows in set (0.00 sec)
MySQL connector JAR包的下载位置及JDBC配置
https://www.cnblogs.com/zzycv/p/13772595.html

 

posted @ 2021-10-31 21:02  葫芦杯  阅读(860)  评论(0编辑  收藏  举报