0


Linux之Mysql离线安装

1、Linux之Mysql离线安装

1、查看是否已安装:rpm -qa | grep mysql
2、官网下载tar.gz
  1. 官网下载地址
  2. 当前下载mysql5.7,选5.7.20、Linux-Generic、all
  3. 确认下载32bit还是64bit的
3、上传到服务器后解压
# 解压文件至/usr/local/目录
tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
# 重命名为 mysql
mv /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64//usr/local/mysql
4、创建用户组
groupadd mysql     #创建用户组
# -r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加到用户组 mysql 中
useradd -r -g mysql mysql

#分配用户组
chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为 mysql 用户
chgrp -R mysql /usr/local/mysql/ # 将组属性改为 mysql 组
  1. 为什么要创建用户和组可以看看这篇
MySQL 开在 root 上意味着它可以在系统的任何位置写任何文件,MySQL 开在 mysql 用户上,保证它对系统大部分位置不可写,从而 MySQL 即使被攻击,也可以限制它对整个系统的影响。
当让MySQL运行的时候使用一个独立的账号和用户组时,该用户和用户组权限是可以控制的。当系统中文件的权限未设定给Mysql用户以及用户组时,Mysql用户无法进行读写执行操作。而如果MySQL被黑了,可以通那么开始拿到的权限就是那个创建的账号而不是默认的root,我们在编译安装的时候创建一个mysql组和一个mysql用户,并把datadir和安装目录属主改为mysql。
在MySQL启动的时候,单进程mysqld,该进程的属主就是mysql,这样就保证了mysql服务的独立性,即使mysql服务被黑掉,得到了mysql用户权限,也不会影响整个系统的安全。

作者:ytAnck
链接:https://juejin.cn/post/7303546495777046537
来源:稀土掘金
5.创建数据目录并赋予权限
mkdir -p /data/mysql #数据目录
chown mysql:mysql -R/data/mysql
6.修改配置文件 vim /etc/my.cnf
[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
explicit_defaults_for_timestamp=true
7.初始化数据库

参数: --basedir 为mysql解压目录,–datadir 为mysql数据存放目录。(注意安装路径是否一致

cd /usr/local/mysql/bin/
#查看初始密码,一般最后一行root@locallhost:后面的就是密码
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/--datadir=/data/mysql/--user=mysql --initialize

#查看初始密码,一般最后一行root@locallhost:后面的就是密码
cat /data/mysql/mysql.err

注:在初始化数据库时可能报缺少xx动态库的错误

如:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
#第1步:查看是否安装了libaio,无返回则说明未安装,执行步骤2
rpm -qa|grep libaio

#第2步:切换到root用户,使用命令yum install -y libaio进行安装
8. 加入到系统服务并启动mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
    
#登录mysql,一定要开启服务后才能登陆
/usr/local/mysql/bin/mysql -u root -p 
    
./mysql -u root -p
# 登录成功后会提示你重置密码
# 修改密码,SQL语句后面的分号不能丢
ALTERUSER'root'@'localhost' IDENTIFIEDBY 'uacsapp';FLUSHPRIVILEGES;       #刷新 
# 退出 quit
# 重启服务 service mysql restart
# 再次登陆 /usr/local/mysql/bin/mysql -u root -p //输入刚修改的密码1234敲回车键
# 到此mysql已经安装完成了

在用工具连接mysql时提示:

MySQL 异常: "Host 'xxx' is not allowed to connect to this MySQL server"

解决:
登录mysql,刷新规则允许外部访问
host修改成%表示,所有主机都可以通过root用户访问数据库

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

参考链接

2、linux关闭防火墙命令(一般使用方法二即可)

方法一:

  1. 使用命令service iptables stop停止防火墙服务。
  2. 使用命令chkconfig iptables off禁止防火墙在系统启动时自动启动。

方法二:

  1. 使用命令systemctl stop firewalld停止Firewalld服务。
  2. 使用命令systemctl disable firewalld禁止Firewalld在系统启动时自动启动。

方法三:

  1. 使用命令iptables -F清空防火墙规则。
  2. 使用命令iptables -X删除所有用户自定义链。
  3. 使用命令iptables -Z将所有计数器归零。

方法四:

  1. 使用命令ufw disable禁用Uncomplicated Firewall(如果已经安装)。

3、linux下设置mysql开机自启动

linux开机自启动的服务都存在这个

/etc/rc.d/init.d/

文件夹下面,开机的时候会自动去启动该文件下的服务,那么到这里事情就简单了,我们只需要把mysql的启动服务copy过来即可。

#copy并重命名
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
    
#复制成功后我们需要给赋予权限
chmod +x /etc/init.d/mysql
    
#添加为服务:
chkconfig --add mysql
    
#查看服务列表 
chkconfig --list

#看到mysql服务的3、4、5状态为开或者为 on 则表示成功。 如果是 关或者 off 则执行一下:
chkconfig --level 345 mysqld on
    
#重启计算机:
reboot
标签: linux mysql

本文转载自: https://blog.csdn.net/weixin_45476535/article/details/140821909
版权归原作者 小僵123456 所有, 如有侵权,请联系我们删除。

“Linux之Mysql离线安装”的评论:

还没有评论