Ubuntu 16.04 部署MySQL服务

0x00 前言

MySQL是一款开源的关系型数据库管理系统,大量公司都在使用它,或是在它的基础上做二次开发。有时,我们会需要在Linux系统上部署MySQL服务用于测试。

本文是根据网上的经验分享以及亲自实践的过程总结而来。实验环境为:Ubuntu 16.04 x64。

0x01 安装MySQL服务端和客户端

    apt install mysql-server -y 
    apt install mysql-client -y

安装mysql-server过程中会提示输入root用户密码。

查看mysql版本:

    mysqld --version
    mysqld  Ver 5.7.22-0ubuntu0.16.04.1 for Linux on x86_64 ((Ubuntu))

使用netstat -an | grep 3306命令测试服务是否安装成功:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN 

0x02 修改配置文件

mysql默认监听的是回环地址,如果要改为监听全局地址,可以修改mysql的配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf,默认配置如下:

    [mysqld]
    #
    # * Basic Settings
    #
    user            = mysql
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    port            = 3306
    basedir         = /usr
    datadir         = /var/lib/mysql
    tmpdir          = /tmp
    lc-messages-dir = /usr/share/mysql
    skip-external-locking
    #
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address            = 127.0.0.1

注释掉以下行就可以监听全局地址:

#bind-address            = 127.0.0.1

以下行可以修改监听端口:

port            = 13306

修改默认编码为:utf8,在[mysqld]下新增以下行:

    collation-server = utf8_unicode_ci
    init-connect='SET NAMES utf8'
    character-set-server = utf8

重启mysql服务:systremctl restart mysql,确认配置生效

确认编码是否生效的方法是通过mysql -u root -p进入mysql命令行后,使用SHOW VARIABLES LIKE "character_set_server";确认。

    mysql> SHOW VARIABLES LIKE "character_set_server";
    +----------------------+-------+
    | Variable_name        | Value |
    +----------------------+-------+
    | character_set_server | utf8  |
    +----------------------+-------+
    1 row in set (0.01 sec)

0x03 创建用户和数据库

为了安全性,一般不使用root帐号登录,可以创建子用户登录。

使用mysql -u root -p命令进入mysql命令行,输入以下命令创建用户。

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

username:新创建的用户名

host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

password:该用户的登录密码,密码可以为空,如果为空则该用户可以不需要密码登录服务器

此时,该用户还没有对应的数据库,可以使用以下命令创建:

CREATE DATABASE database;

然后授予用户访问权限:

GRANT privileges ON database.table TO 'username'@'host'

privileges:用户的操作权限,如SELECTINSERTUPDATE等,如果要授予所的权限则使用ALL

database:数据库名

table:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如: *.*

0x04 客户端访问

在服务器上一般使用mysql命令访问,在本地电脑上我一般使用MySQL-Front软件访问,全部可视化操作,非常方便。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏醉梦轩

Ubuntu 16.04 部署MySQL服务

MySQL是一款开源的关系型数据库管理系统,大量公司都在使用它,或是在它的基础上做二次开发。有时,我们会需要在Linux系统上部署MySQL服务用于测试。

981
来自专栏python3

解决centos7 /etc/rc.local 不能执行

最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了

1322
来自专栏乐沙弥的世界

MySQL多实例配置(一)

    MySQL数据库的集中化运维,可以通过在一台MySQL数据库服务器上,部署多个MySQL实例。该功能是通过mysqld_multi来实现。mysqld_...

1352
来自专栏西安-晁州

GridFS使用及配合nginx实现文件服务

Mongodb下GridFS使用及配合nginx实现文件服务 一、GridFS简介 GridFS是mongodb下用来存储文件的一种规范,所有官方支持的驱动均实...

5640
来自专栏ytkah

防止SQL注入的6个要点

1552
来自专栏Java成神之路

mysql_异常_01_Access denied for user 'root'@'192.168.1.13' (using password: YES)

使用navicat premuim 连接 虚拟机mysql数据库时 ,抛出如下错误:

853
来自专栏日常分享

Oracle常用数据库系统表单以及SQL的整理

  因为最近涉及到了一些数据库的归档,备份等工作,所以一部分的重心放在了数据库上,毕竟之前对数据库的了解也只停留在了一般的建表,查询,最多最多再写一写触发器之类...

1261
来自专栏乐沙弥的世界

MySQL 修改用户密码及重置root密码

    为数据库用户修改密码是DBA比较常见的工作之一。对于MySQL用户账户的密码修改,有几种不同的方式,推荐的方式使用加密函数来修改密码。本文主要描述了通过...

3182
来自专栏前端vue

对数据进行一些基本操作(四)

完整代码 ↓ ↓ ↓ ↓ github地址:https://github.com/jgsrty/jianshu_node 码云地址:https://gite...

1594
来自专栏窗户

C语言/原子/编译,你真的明白了吗?

  说到原子,类似于以下的代码可能人人都可以看出猫腻。 /* http://www.cnblogs.com/Colin-Cai */ #include <std...

2159

扫码关注云+社区