安装 MySQL(LINUX端) 非 root

2021-12-17  本文已影响0人  QXPLUS

LINUX端 安装 MySQL5.7, 并通过Navicat 远程连接

1. LINUX端 安装 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个安装包:


rpm_pkg.png

我们需要安装的只有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
folder_after_install.png
mkdir ~/app/mysql/var/log
mkdir ~/app/mysql/var/lib/data

1.4 修改配置文件my.cnf

vi ~/app/mysql/etc/my.cnf

添加或修改后如下:

//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,其他人可自行修改

netstat_port.png

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 
login_mysql_1st.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)

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

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

2.1 Navicat 远程连接mysql

navicat_main.png

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;

3.3 新用户登录mysql

cd ~/app/mysql/usr/bin
./mysql -u Rd2crc -p -S ~/app/mysql/var/lib/mysql/mysql.sock 

3.4 删除用户

drop user 'r&d2crc'@'%';
drop user 'r&d2crc'@'localhost';
flush privileges;
1641448787(1).png

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的SSL

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

连接远程mysql

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

上一篇下一篇

猜你喜欢

热点阅读