linux安装mysql5.7.34 (详细、稳妥)

下载(2选1): 1.网盘链接:. 提取码:batz 2.官网地址:

首先要说一点,linux可能内嵌了mariaDB,mariaDB是mysql的一个分支,同时存在可能会出现冲突,因此先检查并删除linux上内嵌的mariaDB:

yum list installed | grep mariadb #检查是否存在mariaDB
yum -y remove mariadb-libs.x86_64 #移除

注意新建目录/mymysql5.7,然后将mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz放在目录/mymysql5.7下面(此步骤自行解决)

解压:

tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

移动到/usr/local/mysql下

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

创建mysql用户组和用户

groupadd mysql
    useradd -r -g mysql mysql

创建mysql数据目录并赋予权限

mkdir -p  /data/mysql              #创建mysql数据目录
chown mysql:mysql -R /data/mysql   #赋予权限;将/data/mysql下的所有文件与子目录的拥有者皆设为 mysql ,群体的使用者 mysql :

配置my.cnf

vim /etc/my.cnf

将下面内容复制进去(i键进入编辑模式,esc->冒号+wq退出编辑)

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0

初始化数据库 进入mysql的bin目录,注意别进错了目录

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

注:初始化数据库时由于不同版本,可能会出现下面两个问题: 问题1: ./mysqld: 没有那个文件或目录,这是确实libnuma引起的;先执行 yum remove libnuma.so.1 然后执行 yum -y install numactl.x86_64安装即可 问题2:ERROR: [code] ./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory [/code] 是因为没有安装libaio.so.1 使用命令 yum install -y libaio 安装即可 附加问题3:也有可能所在的目录不对,注意检查

查看密码:

cat /data/mysql/mysql.err

启动mysql,并更改root 密码

先将mysql.server放置到/etc/init.d/mysql中

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动:

service mysql start #启动

用生成的随机密码登录,进行修改密码

./mysql -u root -p   #bin目录下

再分别依次执行下面三步操作:(注意:mysql每条命令的结束都有分号)

SET PASSWORD = PASSWORD(root);
ALTER USER root@localhost PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

这时候你如果用Navicat远程连接……你会发现你无法连接。

这是因为mysql默认只能本地访问,需要修改下user表root用户的权限,将默认的localhost改为%:(安装windows版本时一样需要改的)

use mysql   #选择访问mysql库
update user set host = % where user = root; #使root能再任何host访问
FLUSH PRIVILEGES;    #刷新

撒花 撒花~~~

经验分享 程序员 微信小程序 职场和发展