centos7 安装mysql

1.下载,可以去官网或我分享的百度云下载

官网下载链接: https://dev.mysql.com/downloads/mysql/5.7.html
百度网盘链接: https://pan.baidu.com/s/1nrDWUciSyGvA9SkLACQagA 提取码:3wde

2.安装

(1)卸载mariadb,centos7一般自带了个mariadb,它是mysql的一个分支

查看已有的mariadb
yum list installed | grep mariad

执行卸载mariadb,卸载上边找到的mariadb-libs.x86_64(可能每个机器查出来的不同,根据上条命令查出来的卸载即可)
yum -y remove mariadb-libs.x86_64

(2)解压mysql -C参数指定解压目录,这里我解压到/usr/local
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

(3)重命名    原来的名字太长了,重命名下(不重命名也行,后边命令对应的要变下)

cd /usr/local
mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysql-5.7.24

 (4)mysql-5.7.24文件夹目录下创建一个/data/3306文件夹,切换到mysql-5.7.24目录,执行命令

mkdir data
cd data
mkdir 3306

(5)添加mysql用户及用户组,执行命令:

groupadd mysql
useradd mysql -g mysql

  -g: 是指定用户所在组

(6)切换到mysql-5.7.24/bin目录下执行

./mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql-5.7.24/data/3306 --basedir=/usr/local/mysql-5.7.24
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.24/data/3306

其中第一条命令的 --initialize-insecure 表示不生成临时密码

如果出现这个错误:

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

安装一个依赖库:

yum install -y libaio

 如果出现这个错误:

./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

是因为 yum 安装的libnuma.so.1,但安装时默认安装的是32的,需要的是64位的,解决方法

如果已经安装了libnuma.so.1,先移除掉命令: yum remove libnuma.so.1
然后安装:yum -y install numactl.x86_64

(7)更改mysql-5.7.24整个文件夹目录权限所属,执行命令

chown -R mysql:mysql /usr/local/mysql-5.7.24

(8)mysql-5.7.24/data/3306 目录下创建my.cnf文件,内容为下边全部的内容

[client]
port        = 3306
socket      = /usr/local/mysql-5.7.24/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port    = 3306
socket  = /usr/local/mysql-5.7.24/data/3306/mysql.sock
datadir = /usr/local/mysql-5.7.24/data/3306
log-error = /usr/local/mysql-5.7.24/data/3306/error.log
pid-file = /usr/local/mysql-5.7.24/data/3306/mysql.pid

character-set-server=utf8
lower_case_table_names=1
autocommit = 1

 (9)启动mysql

mysql-5.7.24/bin目录下执行命令

./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3306/my.cnf &

(10)登陆mysql,在mysql-5.7.18/bin目录下执行命令,如果提示输入密码直接回车就行,因为上边已经设置了不生成临时密码

./mysql -uroot -p -P3306 -h127.0.0.1

(11)修改mysql的密码

alter user 'root'@'localhost' identified by '123456';

(12)授权远程访问,执行命令:(这样远程客户端例如navicat才能访问)

grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;

其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;

root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.10.130

flush privileges; 刷新权限。

最后就可以用第三方客户端连接mysql了

(13)关闭mysql

./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown

PS: 

如果上面授权远程访问执行之后依然远程连接不上mysql,可能是Linux上防火墙拦截了,可以将防火墙先关闭;

systemctl stop firewalld         #该命令是临时关闭防火墙,重启centos后失效
systemctl disable firewalld      #把防火墙置为不可用#

或者开放端口(建议采用这种方式,比较安全)

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload #重新加载防火墙配置






















原文地址:https://www.cnblogs.com/jinwenb/p/12652218.html