美文网首页
安装 MySQL(LINUX端) 非 root

安装 MySQL(LINUX端) 非 root

作者: QXPLUS | 来源:发表于2021-12-17 14:41 被阅读0次

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

  • 适合入门安装
  • 2021.12.17

1. LINUX端 安装 MySQL

  • 场景:本人项目需要,需要建立一个部门内部的数据库,然而,查询到服务器已经有安装mysql,且个人账号均无root权限,也没有办法将已安装的mysql供个人使用,于是只能在个人账号目录下安装。

难点

    1. 以前对mysql不熟悉,不懂得mysql存在很多依赖
    1. 服务器root账号安装的mysql会与个人账号安装时存在冲突
    1. 无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个安装包:


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

添加或修改后如下:

  • 注意: 需要将~/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,其他人可自行修改

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
  • 在这里,初始密码是上面查到的 -- 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

navicat_main.png
  • 主机名或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;
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

相关文章

网友评论

      本文标题:安装 MySQL(LINUX端) 非 root

      本文链接:https://www.haomeiwen.com/subject/aysifrtx.html