LINUX端 安装 MySQL5.7, 并通过Navicat 远程连接
- 适合入门安装
- 2021.12.17
1. LINUX端 安装 MySQL
- 场景:本人项目需要,需要建立一个部门内部的数据库,然而,查询到服务器已经有安装mysql,且个人账号均无root权限,也没有办法将已安装的mysql供个人使用,于是只能在个人账号目录下安装。
难点:
- 以前对mysql不熟悉,不懂得mysql存在很多依赖
- 服务器root账号安装的mysql会与个人账号安装时存在冲突
- 无root权限,很多操作无法进行,更不可能删除已安装的mysql
基于rpm bundle 的 mysql 安装
常见的安装方式有两种:源码安装 和 rpm 安装包安装 源码安装:mysql--tar.gz, 安装包安装: mysql-.rpm bundle.gz, mysql-.rpm.gz
- 本文最近尝试了各种方式,最终只有安装包安装没有冲突,且正常启动
1.1 下载安装包并上传到服务器
本文的pkg文件夹下 有 mysql-5.7.25-1.el6.x86_64.rpm-bundle.tar 也可以下载其他版本。
打开Xshell, 连接到服务器,将安装包上传到指定目录下,本文放在 ~/app/mysql/
1.2 解压安装包文件:
cd ~/app/mysql
tar -xvf mysql-5.7.25-1.el6.x86_64.rpm-bundle.tar
会得到以下9个安装包:

我们需要安装的只有5个(也有人说,只需要安装client 和 server即可,感兴趣的可以试一下)
1.3 rpm安装
一定要使用rpm2cpio \*.rpm | cpio -idvm
命令,才可以在~/app/mysql/
下创建 ./var, ./usr, ./etc
等文件夹,用于mysql配置文件的存放与查询。
cd ~/app/mysql
rpm2cpio mysql-community-common-5.7.25-1.el6.x86_64.rpm | cpio -idvm
rpm2cpio mysql-community-libs-5.7.25-1.el6.x86_64.rpm | cpio -idvm
rpm2cpio mysql-community-client-5.7.25-1.el6.x86_64.rpm | cpio -idvm
rpm2cpio mysql-community-server-5.7.25-1.el6.x86_64.rpm | cpio -idvm
rpm2cpio mysql-community-devel-5.7.25-1.el6.x86_64.rpm | cpio -idvm
# 将不需要的安装包放在pkg文件夹下保存
mkdir pkg
mv myaql-* pkg
# 查看rpm安装后的文件
cd ~/app/mysql
ll
# 会发现已经多了3个文件夹 var/ usr/ etc

mkdir ~/app/mysql/var/log
mkdir ~/app/mysql/var/lib/data
1.4 修改配置文件my.cnf
vi ~/app/mysql/etc/my.cnf
添加或修改后如下:
- 注意: 需要将
~/app/mysql
全部替换成你自己的绝对路径,这里用相对路径替代展示
//my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
port=3336 # 默认 3306 端口
socket=~/app/mysql/var/lib/mysql/mysql.sock
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
port=3336
datadir=~/app/mysql/var/lib/mysql
socket=~/app/mysql/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=~/app/mysql/var/log/mysqld.log
pid-file=~/app/mysql/var/run/mysqld/mysqld.pid
basedir=~/app/mysql/usr
secure-file-priv=~/app/mysql/var/lib/mysql-files
#字符集设置
character-set-server=utf8
init_connect='SET NAMES utf8’
#大小写不敏感
lower_case_table_names=1
sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
log-bin-trust-function-creators=1
1.5 初始化mysql数据库
cd ~/app/mysql/usr/sbin
./mysqld --defaults-file=~/app/mysql/etc/my.cnf --initialize
1.6 启动mysql
./mysqld --defaults-file=~/app/mysql/etc/my.cnf &
查看端口
netstat -nl | grep 3336
# 本人设的端口号是3336,其他人可自行修改

1.7 获取初始密码
grep password ~/app/mysql/var/log/mysqld.log
$grep password ~/app/mysql/var/log/mysqld.log 2021-12-16T05:01:11.983451Z 1 [Note] A temporary password is generated for root@localhost: **9PIHmmj0pc.5**
1.8 登录root
cd ~/app/mysql/usr/bin
# 这里一定要指定sock文件路径 -S
./mysql -u root -p -S ~/app/mysql/var/lib/mysql/mysql.sock

- 在这里,初始密码是上面查到的 -- 9PIHmmj0pc.5
login_success.png
1.9 修改root 账号的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'psnb';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'psnb';
Query OK, 0 rows affected (0.01 sec)
- 下次登录的密码就成了 psnb
login_mysql.png
1.10 开通访问权限
grant all privileges on *.* to 'root'@'%' identified by 'psnb';
mysql> grant all privileges on *.* to 'root'@'%' identified by 'psnb';
Query OK, 0 rows affected, 1 warning (0.00 sec)
刷新权限
flush privileges;
mysql> flush privileges;
Query OK, 0 rows affected (0.10 sec)
1.11 退出mysql
mysql>quit
Bye
- 一般在服务器上的mysql安装就到此为止了,是不需要关闭服务的
1.12 关闭mysql服务
cd ~/app/mysql/usr/bin
./mysqladmin -u root -p shutdown -S ~/app/mysql/var/lib/mysql/mysql.sock
mysqladmin: [Warning] /PERSONALBIO/Work/Rd/Rd01/.mylogin.cnf should be readable/writable only by current user.
Enter password:
[1]+ Done ./mysqld --defaults-file=~/software/mysql/etc/my.cnf (wd: ~/software/mysql/usr/sbin)
(wd now: ~/software/mysql/usr/bin)
2. Windows端 安装 Navicat
- Navicat for MySQL 的安装就非常简单了,自行下载安装包,一步一步安装就好了,本人是全部默认安装的。
2.1 Navicat 远程连接mysql

- 主机名或IP地址: Xshell 连接的服务器的IP
- 端口: mysql的端口,前面设置的是3336
- 用户名:mysql 的用户名,这里是root用户,也可以是非root用户
-
密码:mysql 的用户名对应的密码
navicat_connect.png
-
连接测试成功后,点“确定”,保存即可,下次登录Navicat 双击这个连接,既可以登录远程的mysql
navicat_connect_sucess.png
- 如果是新建的非root用户,需要先登录root用户,为新用户添加服务器的
super
权限,然后再登录新用户即可。
添加super权限
3. 添加普通用户并授权
3.1 root用户登录mysql
cd ~/app/mysql/usr/bin
./mysql -u root -p -S ~/app/mysql/var/lib/mysql/mysql.sock
3.2 添加新用户
# 添加用户名为Rd2crc,密码为crc的新用户,该用户只能访问crc数据库下的文件
grant all privileges on crc.* to 'Rd2crc'@'localhost' identified by 'crc' with grant option; # 本地连接
grant all privileges on crc.* to 'Rd2crc'@'%' identified by 'crc' with grant option; # 本地连接和远程连接
flush privileges;
-
note: 用户名不能用特殊字符,比如,@, & 等,不然会报错。
1641447838(1).png
3.3 新用户登录mysql
cd ~/app/mysql/usr/bin
./mysql -u Rd2crc -p -S ~/app/mysql/var/lib/mysql/mysql.sock
- 显示mysql的所有用户
select host,user,plugin from mysql.user;
1641448518(1).png
3.4 删除用户
drop user 'r&d2crc'@'%';
drop user 'r&d2crc'@'localhost';
flush privileges;

4. Windows端 安装 mysql workbench
如果你不想用收费的Navicat, 也可以选择官方免费的 mysql workbench
mysql workbench 8.0以上都会默认用SSL连接,而mysql5.7是不支持SSL的,所以,需要关闭mysql workbench中的SSL(或者安装mysql workbench-6.0)
打开 C:\Users\dell\AppData\Roaming\MySQL\Workbench\connections.xml

再次打开mysql workbench, 选择Standard TCP/IP over SSH
进行登录远程mysql.(在这里,我没有成功登录root用户,然后新用户登录成功了。)

5. Reference
1.rpm package,rpm bundle和Compressed TAR Archive:https://blog.51cto.com/u_1306733/1921839
2.非root用户安装mysql: https://blog.csdn.net/weixin_37998428/article/details/111937822
网友评论