服务器安装数据库

一、前提与准备

1.服务器系统 CentOS 8.2 64位,或者 linux ( 非必须 )

2.已通过 ssh 远程连接到服务器

3.当前用户为 root


二、安装 MySQL

1.切换到家目录. ( 此步不做也行~ )

cd 回车

2.复制下面指令到命令行, 然后回车, 发呆即可

wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh db

此为后端常用的 lnmp 一键安装环境. 它先下载安装脚本, 然后根据命令参数下载源码安装包. 之后编译安装.

命令最后 db, 表示单独安装 MySQL 数据库

1核2G 服务器安装时间大概需要 12 分钟

 

 

 

 

3.安装结束

 

4.连接测试 和 添加远程的连接用户

 

 

 

设置权限规则:

grant all privileges on "数据库名称" to '账号'@‘%’ identified by '密码'; // 注释 * 为所有数据库的权限

 

5. 退出mysql

 

 

6. MySQL 状态管理

/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}

/etc/init.d/mysql start  # MySQL安装后默认就是运行状态, 所以一般不用执行这条指令

/etc/init.d/mysql stop      # 停止 MySQL 服务
/etc/init.d/mysql restart   # 重启
/etc/init.d/mysql reload    # 重新加载, 应该是比 restart 好一些
/etc/init.d/mysql status    # 查看当前状态

   

 

 

三. 防火墙设置 

知识点1: 虽然 MySQL 已起动, 开始监听 3306 端口. 但是整个服务器层面默认不允许外人访问这个端口.我们需要配置防火墙, 允许该端口的访问.

知识点2: 另外 MySQL 的管理员账号默认是不可以远程访问的.

「所以我们要做两件事: 」

1.防火墙设置

  • 外网防火墙 (通过服务器厂商提供的页面进行设置 )
  • 服务器内部防火墙服务配置 ( 通过服务器命令行 )

2. MySQL数据库服务器添加可以远程访问的用户

 

1.1 登录 官网,外部防火墙设置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1 服务器内部防火墙设置

# 下面指令可无脑依次执行

# 1.查看防火墙状态
systemctl status firewalld.service

# 2.开启防火墙
systemctl start  firewalld.service

# 3.开放3306端口
firewall-cmd  --zone=public  --add-port=3306/tcp  --permanent

# 4.重启防火墙使新设置生效
firewall-cmd  --reload

# 5.查看已经打开放的端口
firewall-cmd  --list-ports



 

四. 本地安装 DBeaver

1. 点击此处安装

 

2. 远程连接数据库 

 

3. 连接成功

 

 4. 使用 SSH连接

 

 

 

 

 

 

 

5. 密码 ssh 连接失败,提示 Auth fail

 

 

6. 无法连接远程服务器,因没有权限 

 

解决办法:

1. 登录服务器平台,设置外网防火墙 3306端口号

 

五、新建数据库

 

 

 

 

 

六. 卸载 MySQL

1. 停用 mysql

/etc/init.d/mysql stop

 

2. 查看 mysql 程序的对应的pid号

ps -e|grep mysql

  

3. 杀掉 mysql 进程

kill -9 进程号

或者

killal mysqld // 杀掉所有已mysql命名的进程

 

 4. 进入删除目录

cd /root/lnmp1.7  回车
./uninstall.sh    回车
1 回车
任意键回车

 

 

七、重装mysql 遇到的问题

1. linux ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

一般这个错误是由密码错误引起,解决的办法自然就是重置密码。

假设我们使用的是root账户。

1.1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

#vim /etc/my.cnf (注:windows下修改的是my.ini) 

在文档内搜索mysqld定位到[mysqld]文本段:/mysqld (在vim编辑状态下直接输入该命令可搜索文本内容)

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:

保存文档并退出:#:wq

1.2. 接下来我们需要重启MySQL:

/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)

1.3.重启之后输入#mysql即可进入mysql。

1.4.接下来就是用sql来修改root的密码

mysql> use mysql;
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit

到这里root账户就已经重置成新的密码了。

1.5. 编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

 网上有很多关于这个问题的解决说明,很多刚接触的朋友可能比较迷惑的是在自己的平台上找不到my.cnf或者my.ini文件,如果你是Linux,使用如下方式可以搜索到:

至于windows平台,去安装目录下找一下my.ini吧。

 

2.  error Error: ER_TOO_MUCH_AUTO_TIMESTAMP_COLS: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause     at Query.Sequence._packetToError

解决办法:请查看以下网址

 

3. linux mysql Operation timed out (Connection timed out)

解决办法:查看以上外部防火墙设置

 

4. 如有其他问题可查看以下网址

posted @ 2021-02-27 09:48  小短腿奔跑吧  阅读(839)  评论(0编辑  收藏  举报