前置准备下载地址
mysql5.7源码安装包百度网盘:https://pan.baidu.com/s/1Zgom3gFSNluZQLn8wvEutw
官网下载:https://dev.mysql.com/downloads/mysql/
linux服务器1台最好是2G内存以上,mysql服务启动后占用500M左右
winSCP文件传输工具;将mysql安装包上传到linux服务器
下载地址:https://winscp.net/eng/download.php
  • 文件传输:上传mysql5.7安装包到服务器(program目录是自己创建的)
    这里写图片描述

  • 解压mysql5.7安装包

[root@izwz93iqzu25txre8gk673z program]# tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

  • 移动到***/usr/local***目录下,并重命名为mysql-5.7

[root@izwz93iqzu25txre8gk673z program]# cp mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local
[root@izwz93iqzu25txre8gk673z program]# mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 mysql-5.7

  • 配置my.cnf文件
    从mysql5.7开始不会自动生成my.cnf文件,所以需要手动创建。my.cnf文件输入以下内容

[root@izwz93iqzu25txre8gk673z support-files]# vim /etc/my.cnf

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#跳过权限表校验
#skip-grant-tables
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql-5.7
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql-5.7/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
  • 在my.cnf文件的配置中,需要注意的是datadir参数,这里在mysql-5.7下指定了data目录,data目录是不存在的需要我们手动创建

[root@izwz93iqzu25txre8gk673z support-files]# mkdir /usr/local/mysql-5.7/data

  • 添加mysql用户、mysql组

[root@izwz93iqzu25txre8gk673z support-files]# groupadd mysql
[root@izwz93iqzu25txre8gk673z support-files]# useradd -r -g mysql mysql
[root@izwz93iqzu25txre8gk673z support-files]# chown -R mysql:mysql /usr/local/mysql-5.7/

  • 初始化mysql数据库,控制台会输出临时密码,请记下: root@localhost:xxxxxx

[root@izwz93iqzu25txre8gk673z support-files]# cd /usr/local/mysql-5.7/bin/
[root@izwz93iqzu25txre8gk673z bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7 --datadir=/usr/local/mysql-5.7/data

如果没有及时记下密码,可修改/etc/my.cnf文件,在[mysqld]下方添加skip-grant-tables,意思是跳过权限表的校验,可以免密登录

  • 启动mysql服务、登录并修改密码

[root@izwz93iqzu25txre8gk673z ~]# service mysqld start
Starting MySQL… [ OK ]
[root@izwz93iqzu25txre8gk673z ~]# mysql -uroot -p
Enter password:

如果执行mysql -uroot -p提示**-bash: mysql: command not found**,是因为mysql没有添加到系统变量中,可通过软连接将mysql添加到系统的**/usr/bin**目录

[root@izwz93iqzu25txre8gk673z ~] # ln -s /usr/local/mysql-5.7/bin/mysql /usr/bin

  • 修改密码、并允许所有主机远程访问mysql数据库
    • 登录成功后,打开名称为"mysql"的数据库(myql > show tables),查看"mysql"数据库的表(mysql > show tables),其中有一张user表是我们需要更新的

mysql> use mysql;
Database changed
mysql> show tables;
±--------------------------+
| Tables_in_mysql |
±--------------------------+
| columns_priv |
| db |
| engine_cost |
| event |
| func |
| general_log |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
±--------------------------+
31 rows in set (0.00 sec)

  • 更新root用户的密码为123456

mysql> update user set authentication_string=password(‘123456’) where user=‘root’;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1

  • 允许所有ip的主机连接mysql数据库

mysql> update user set host=’%’ where user=‘root’;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0

  • 授权远程主机允许连接mysql数据库

mysql> grant all privileges on . to root@’%’ identified by ‘123456’;
Query OK, 0 rows affected, 1 warning (0.00 sec)

  • 连接验证:使用第三方工具连接mysql数据库
    这里写图片描述

  • 常用命令(Centos7环境)

  • 启动mysql服务:#service mysqld start

  • 停止mysql服务: #service mysqld stop

  • 重启mysql服务:#service mysqld restart

Logo

更多推荐