Linux安装MySQL5.7

1. 下载 MySQL安装包 tar.gz

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

2. 上传到服务器并解压

上传服务器的目录看个人喜好,这里上传到 /opt/software。

tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar  

  解压后出来有两个压缩包 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz ,mysql-test-5.7.30-linux-glibc2.12-x86_64.tar.gz。这里将 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 进行解压并重命名一下,解压可以指定目录.

tar -zxvf  mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /opt/local
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql-5.7.30 

  

3. 创建mysql用户组和用户并修改权限

groupadd mysql  # 创建mysql用户组
useradd -r -g mysql mysql #创建mysql用户
mkdir -p  mysql-5.7.30/data   #创建数据目录,这里我创建到mysql安装目录里面,
chown mysql:mysql -R mysql-5.7.30  #赋予权限,如果数据目录不在mysql安装目录,则还需要将数据目录的权限赋予mysql组和用户

 4.  配置/etc/my.cnf

vim /etc/my.cnf,配置内容如下

bind-address=0.0.0.0
port=3306
user=mysql
basedir=/opt/local/mysql-5.7.30   # 安装目录
datadir=/opt/local/mysql-5.7.30/data #数据目录
socket=/tmp/mysql.sock
log-error=/opt/local/mysql-5.7.30/mysql.err  # 日志
pid-file=/opt/local/mysql-5.7.30/mysql.pid  # 进程文件
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
explicit_defaults_for_timestamp ge

更多my.cnf的配置详细可自行去查阅资料。

5. 初始化数据库

进入到mysql的bin目录执行

./mysqld --basedir=/opt/local/mysql-5.7.30 --datadir=/opt/local/mysql-5.7.30/data --user=mysql --initialize

  查看初始化密码,在mysql.err文件

cat mysql-5.7.30/mysql.err  # 初始密码在:最后一行root@localhost: 初始密码

6. 启动mysql,并更改root 密码

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

cp mysql-5.7.30/support-files/mysql.server /etc/init.d/mysql

  启动

service mysql start  # 启动    
chkconfig mysql on # 该命令可以开机自启动mysql
ps -ef | grep mysql # 查看进程

7. 修改密码

./mysql -u root -p   #bin目录下,然后输入密码,初始密码在mysql.err文件
# 在然后执行以下三个命令
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;   

  如果连接Mysql出现 Access denied for user 'root'@'localhost'(using password: YES)错误,可参考 https://www.cnblogs.com/boris-et/p/8316953.html。

8. 远程连接

连接出现 Host ‘xxx.xxx.xx.x’ is not allowed to connect to this MySQL server的话,去服务器登录mysql,执行一下命令

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

再次远程连接成功!

额外可能用到的命令

service mysql stop # 停止mysql 服务
service mysql restart  重启mysql 服务

 本文抄自:https://blog.csdn.net/qq_37598011/article/details/93489404

原文地址:https://www.cnblogs.com/huangchangpei/p/13088347.html