前置准备 | 下载地址 |
---|---|
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