Linux下安装MySQL 5.7

安装MySQL 5.7

1、通过命令下载

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

2、解压

tar -zxvf  mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql/

3、简化

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

 4、创建数据目录并赋权

mkdir mysql/data
chmod -R 777 /usr/local/mysql/data

 5、创建用户、组并加入

groupadd mysql
useradd -g mysql mysql

6、新建MySQL配置文件

vim /etc/my.cnf

7、加入如下配置 

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

8、进入bin目录初始化

cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/
  • 可能会报错:./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory ,是因为没有安装依赖  libaio,运行如下命令安装依赖
  • yum -y install libaio-devel.x86_64
    yum -y install numactl

9、查看MySQL密码

cat /usr/local/mysql/data/mysql.err

Linux下安装MySQL 5.7_第1张图片

10、添加软连接

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

11、启动MySQL

service mysql start

 12、登录mysql

./mysql -h localhost -u root -p

 13、修改密码

set password=password('rootxjhy');
flush privileges;

Linux下安装MySQL 5.7_第2张图片  

14、修改访问权限

use mysql;
update user set Host='%' where User='root';
flush privileges;

Linux下安装MySQL 5.7_第3张图片  

 15、远程Navicat连接

  • 可能报错:2003 - Can't connect to MySQL server on 'xxx' (10060 "Unknown error")

Linux下安装MySQL 5.7_第4张图片

  • 服务器端口可能未开放,开放端口
firewall-cmd --query-port=3306/tcp
  • 返回no说明未开放,开放3306端口 
firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • 重启防火墙生效配置 
firewall-cmd --reload
  • 查看验证,返回yes端口开放成功 
firewall-cmd --query-port=3306/tcp

Linux下安装MySQL 5.7_第5张图片  

  •  若服务器端口开放了还不能连接访问,则是服务器厂商对应的安全组限制了 

腾讯云服务器端口怎么开放?端口开通教程

腾讯云服务器端口怎么开放?端口开通教程 - 腾讯云开发者社区-腾讯云

阿里云添加安全组规则

添加安全组规则_云服务器 ECS-阿里云帮助中心

 安装完成

创建用户及用户权限配置

1、创建一个MySQL用户

CREATE USER 'xjhy'@'%' IDENTIFIED BY 'xjhy';

 2、查看创建的MySQL用户

SELECT host,user FROM mysql.user WHERE user='xjhy';

3、给创建成功的MySQL用户赋权 

以下是一些MySQL用户常用的权限:
ALL:             所有可用的权限
CREATE:         创建库、表和索引
LOCK_TABLES:     锁定表
ALTER:             修改表
DELETE:         删除表
INSERT:         插入表或列
SELECT:         检索表或列的数据
CREATE_VIEW:     创建视图
SHOW_DATABASES:    列出数据库
DROP:             删除库、表和视图

  一般都是给到业务数据库权限,不要给删除库、表和视图的权限,核心库mysql数据库的权限也不要给,根据自己的需求来。root用户赋予所有权限使用如下命令:

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION;
flush privileges;

  我只给了业务库(zhy)除删除库、表和视图的其它权限,核心库(information_schema、performance_schema、mysql)的查看权限。

GRANT PROCESS ON *.* TO 'xjhy'@'%';
GRANT SELECT ON `information_schema`.* TO 'xjhy'@'%';
GRANT SELECT ON `performance_schema`.* TO 'xjhy'@'%';
GRANT SELECT ON `mysql`.* TO 'xjhy'@'%';
GRANT CREATE,ALTER,INSERT,SELECT,DELETE,UPDATE,INDEX ON `zhy`.* TO 'xjhy'@'%';
flush privileges;

        使用远程连接Navicat工具等可能会报错1227 - Access denied; you need (at least one of) the PROCESs privilege(s) for this operation

        这是因为PROCESS权限是用来查看谁连接数据的一个权限,除了root用户,都只能看到自己的。使用如下命令赋权解决

GRANT PROCESS ON *.* TO 'xjhy'@'%';
flush privileges;

至此赋权完成

你可能感兴趣的:(应用技术,MySQL,运维,linux,mysql,服务器)