在Linux服务器上安装MySQL并配置,远程连接,以及MySQL的一些常规操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 在Linux服务器上安装MySQL并配置,远程连接,以及MySQL的一些常规操作

MySQL是用的很多的关系型数据库。今天来分享一下安装,配置及其连接教程。这里以Debian服务器安装MySQL 8为例。

1,下载MySQL并解压上传

下载页面下载linux版的mysql安装包。

网络异常,图片无法展示
|

注意安装之前必须完全卸载MariaDB,先执行:

sudo apt purge mariadb*

然后下载了一个tar文件,解压你会发现解压出来了一堆deb文件,把这些文件全部上传到linux服务器的一个目录里,并cd命令进入那个目录,然后安装所有的deb文件:

sudo dpkg -i *.deb

若安装后有错误信息,则执行:

sudo apt update
sudo apt install -f

期间会显示一个界面让你设置root密码,即数据库超级管理员root的密码,设置即可:

网络异常,图片无法展示
|

输入密码,ok,然后重复输入密码确认之后会告知你mysql8用了新加密方式,ok即可:

网络异常,图片无法展示
|

然后会让你选择加密方式,有新加密方式和传统加密方式两种。这里需要说明的是如果选择新加密方式可能远程连接数据库时会报错,所以没特殊需要建议选择传统加密方式:

网络异常,图片无法展示
|

这样就安装完成了!

2,修改配置文件

其实通常情况下配置文件不需要修改,不过有特殊需要的话就建议修改一下。

mysql 8的配置文件路径是/etc/mysql/my.cnf

不过我们一般只需修改服务端的配置即可。服务端配置需要修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,打开这个文件可以看到:

# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is also distributed with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation.  The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have included with MySQL.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
#
# The MySQL  Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file  = /var/run/mysqld/mysqld.pid
socket    = /var/run/mysqld/mysqld.sock
datadir   = /var/lib/mysql
log-error = /var/log/mysql/error.log

里面设定了一些默认的数据库文件、日志文件位置,可自行修改。

上面[mysqld]表示一个配置组,即为服务端配置,这个配置组下面的四行配置依次代表:进程文件位置、socket文件位置、数据库存放文件夹和错误日志文件位置。

下面来说几个常用配置。

(1) MySQL端口

服务端的默认端口是3306,不过在这个文件这可以添加配置修改其端口,接着加入下列语句(在[mysqld]配置组):

port=自定义端口号

(2) 字符集

然后就是字符集,建议改成utf8mb4,现在上面服务端配置组[mysqld]里面加入:

character-set-server=utf8mb4

再修改/etc/mysql/my.cnf这个配置文件,加入[client]配置组(如果没有的话)并设置字符集,添加如下语句:

[client]
default-character-set=utf8mb4

(3) 解决连接MySQL非常慢的问题

如果说安装了MySQL,然后通过命令行或者Navicat远程连接的时候,都要等少好多秒才能连接上,连接的非常慢的话,可以关闭其域名解析功能。

编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]配置组下加入如下一行配置即可:

skip-name-resolve

修改完成配置后记得重启mysql服务(见下面3)。

3,启动数据库服务

通过这个目录启动:

service mysql start

还可以停止或者重启:

停止:

service mysql stop

重启(修改完配置文件重启生效):

service mysql restart

安装完成,MySQL的服务端是默认开机自启动的,我们可以通过下列命令打开/关闭MySQL的开机自启动:

允许开机自启:

systemctl enable mysql

禁用开机自启:

systemctl disable mysql

4,设置外网可以连接数据库

在服务器上面输入命令连接数据库:

mysql -u root -p

然后输入管理员密码,就连接成功了。

然后依次执行下列命令:

use mysql;update user set host='%'where user='root';flush privileges;

就设置成功了。

5,Windows上连接MySQL

我们在自己的电脑上也要安装MySQL,这个从官网下载Windows MySQL即可。安装配置方法很简单,百度即可,这里不再赘述。(一般是解压,然后把其中bin文件夹所在文件添加至Path环境变量)

配置好后打开cmd,输入命令:

mysql -h 服务器地址 -P 端口(服务端使用默认端口3306可以不要这个-P选项) -u 数据库用户名 -p

接着要输入密码,然后就可以了。

6,MySQL数据库常规操作

登录数据库后,我们要进行添加用户、数据库等操作。

(1)添加用户

create user '用户名'@'可接受连接的主机的ip' identified by'用户密码';

下面给出几个例子:

创建用户a密码为123456a只能从本机登录(主机字段为localhost):

create user 'a'@'localhost' identified by'123456';

创建用户b密码为123456,b可以从外网任何主机远程登录(主机字段为%):

create user 'b'@'%' identified by'123456';

然后授权用户:

grant 权限 on 授权可操作的数据库.授权可操作的表名 to '被授权用户'@'可操作的主机ip';

其中权限字段有SELECT, INSERT, UPDATE等,若授予所有权限则这里填ALL

例如给b授予操作所有数据库的所有表的全部权限:

grant ALL on*.* to 'b'@'%';

需要注意的是,用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用如下的命令:

grant 权限 on 授权可操作的数据库.授权可操作的表名 to '用户名'@'可操作主机' with grant option;

(2)修改用户密码

在MySQL8中,使用alter语句修改密码。先登录,然后执行以下语句:

alter user '用户名'@'授权的登录地址' identified by'新密码';

注意登录root或者任何高权限账户可以修改自己以及其他用户密码,而普通账户登录只能修改自己的密码。授权的登录地址值即为创建账户的时候设定的值(仅本机访问是localhost,全部可以访问是%)。

(3)新建数据库

create database 数据库名;

若要指定新建数据库的编码和排序字符集,则使用:

create database 数据库名 character set 编码 collate 排序字符集;

例如:

create database test character set utf8mb4 collate utf8mb4_unicode_ci;

最后切换至数据库:

use 数据库名;


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
26 8
|
1天前
|
关系型数据库 MySQL Linux
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
这篇文章提供了在Linux系统中使用Docker安装Mysql 5.7版本的详细过程和图解,包括安装指定版本、创建实例、启动、使用Navicat连接测试、文件挂载与端口映射、进入容器、配置文件修改以及重新启动容器等步骤。
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
|
5天前
|
Ubuntu 关系型数据库 应用服务中间件
在Ubuntu 18.04上安装和配置pgAdmin 4服务器模式的方法
在Ubuntu 18.04上安装和配置pgAdmin 4服务器模式的方法
12 0
|
5天前
|
存储 缓存 Ubuntu
如何在 Apache Web 服务器中安装、配置和使用模块
如何在 Apache Web 服务器中安装、配置和使用模块
14 0
|
5天前
|
监控 关系型数据库 MySQL
如何在 Ubuntu 16.04 上安装和配置 Zabbix 以安全监控远程服务器
如何在 Ubuntu 16.04 上安装和配置 Zabbix 以安全监控远程服务器
5 0
|
5天前
|
Ubuntu Linux 数据库
如何在Ubuntu 16.04上安装和配置Postfix作为仅发送的SMTP服务器
如何在Ubuntu 16.04上安装和配置Postfix作为仅发送的SMTP服务器
9 0
|
6天前
|
存储 关系型数据库 MySQL
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
23 0
|
1天前
|
SQL 存储 关系型数据库
数据库-MySQL-01(一)
数据库-MySQL-01(一)
13 4
|
6天前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。