看了很多文章,试了很多,都不好使,莫名的报错不知道错在哪里,看到了一个博客亲测可用 原主博客
干货开始了
1.下载mysql5.7压缩包,后面的下载链接根据自己需要的版本替换
wget https://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
2.解压
tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
解压目录结构
3.解压后mysql文件重命名
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
4.复制到指定目录
cp -r mysql /usr/local/
5.添加用户组,用专门管理mysql,提高安全
5.1新建组
groupadd mysql
5.2新建用户
useradd -r -g mysql mysql
6修改mysql目录权限
6.1进入mysql根目录
cd /usr/local/mysql/
6.2修改拥有者为mysql用户
chown -R mysql:mysql ./
7.配置mysql服务
7.1 将mysql/support-files下的mysql.server 复制到 /etc/init.d/下并自定义为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
7.2 修改该服务
vi /etc/init.d/mysql
7.3 修改的内容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
8.配置mysql的配置文件
在其他版本的mysql 里面 support-files下有默认的配置文件,而5.7.24这个版本没有,需要自己准备,下面提供一份简单基本配置
在/etc/ 下新建my.cnf ,有些可能会提示已经存在,因为默认装的数据库配置文件也在,直接覆盖就行
8.1 进入etc目录
cd /etc
8.2 删除my.cnf
rm -rf my.cnf
8.3 新建my.cnf
vim my.cnf
8.4 编辑的内容
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
default-character-set=utf8
[mysqld]
# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
9. 初始化数据库
9.1 进入mysql/bin目录下
cd /usr/local/mysql/bin/
9.2 执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
9.3 遇到错误
./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
9.4 执行以下命令
yum -y install numactl.x86_64
9.5 再执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
9.6 遇到错误
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
9.7 执行以下命令
yum -y install libaio
9.8 再执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
9.9 执行完毕后会自动生成默认的密码在执行记录中,注意复制出来
10. 启动mysql服务
10.1 执行启动命令
service mysql start
启动成功会提示 ok
11.登录及远程配置
11.1 登录
进入mysql/bin目录下执行
cd /usr/local/mysql/bin
./mysql -uroot -p
11.2 输入密码
Enter password:输入默认的临时密码
11.3 修改密码
set password=password('新密码');
11.4 设置远程访问(Navicat连接mysql root用户权限)
在python3通过pymysql远程连接mysql还是Navicat,不设置权限的话是会报 Host '*' not allowed connect错误
#密码登录后
mysql -uroot -p
#打开mysql库
use mysql;
#修改mysql权限表
update user set host='%' where user='root';
#立即生效
flush privileges;
上面操作完毕后记得 要在阿里云服务器设置允许端口(我是阿里云服务器具体你们自己更改)
安全组出入方向都设置一下
12.设置开机启动和环境变量(可以忽略)
12.1 开机启动
12.1.1 查看自启服务列表
chkconfig --list
12.1.2 添加mysql服务到自启服务
chkconfig --add mysql
12.1.3 设置自启
chkconfig mysql on
12.2 环境变量
12.2.1 为了不用在mysql/bin目录下才能连接mysql 将mysql/bin目录设置到环境变量中
vim /etc/profile
12.2.2 修改的内容(以下内容vim编辑文件打开后放在文件末尾处)
# mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
12.2.3 更新环境变量
source /etc/profile