本篇教程在示例步骤中使用了以下版本的软件。操作时,请您以实际软件版本为准。

  • 操作系统:Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-105-generic x86_64)
  • MySQL 版本:MySQL 5.7.24-0ubuntu0.16.04.1 (Ubuntu)
  • MySQL 可视化工具:Navicat for MySQL 10.1.7-enterprise

一、MySQL 下载与安装

  1. 更新 apt# apt-get update
  2. 这里使用的是 apt 软件包安装:
    • 安装 mysql-server# apt-get install mysql-server(安装的过程中会提示您为 root 用户设置密码、确认密码并按下回车 ok 即可。
  3. 测试 MySQL 是否安装成功:# netstat -tap | grep mysql
    • 打印类似信息为安装成功: tcp 0 0 localhost:mysql *:* LISTEN 6902/mysqld
  4. 使用 root 用户登陆 MySQL:mysql -uroot -p
    • 输入密码:输入刚才安装过程中设置的密码
    • 到这一步你可能会遇到这样的错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    • 打开 cat /etc/mysql/my.cnf 后你会发现该配置文件引入了 !includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/
    • 打开配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf
    • i 键进入编辑模式
    • [mysqld] 后面任意一行添加 skip-grant-tables 用来跳过密码验证的过程
    • 按 Esc 键退出编辑模式,输入 :wq 保存并关闭文件。
  5. 重启 MySQL:service mysql restart

二、修改 MySQL 编码为 utf8

  1. 登陆 MySQL:mysql -uroot -p,并输入登陆密码
  2. 查看 MySQL 编码:\s(参见附录1)show variables like '%char%';(参见附录2)
  3. 打开配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf
    • i 键进入编辑模式
    • [mysqld]lc-messages-dir = /usr/share/mysql 的后面添加 character_set_server=utf8
    • 按 Esc 键退出编辑模式,输入 :wq 保存并关闭文件。
  4. 打开配置文件 vim /etc/mysql/conf.d/mysql.cnf
    • i 键进入编辑模式
    • [mysql] 后面添加 default-character-set=utf8
    • 按 Esc 键退出编辑模式,输入 :wq 保存并关闭文件。
  5. 重启 MySQL:service mysql restart
  6. 登陆 MySQL 后使用 \sshow variables like '%char%'; 查看修改结果。

三、配置 MySQL 远程连接

  注意:在 MySQL 中所执行的语句 / 命令最好都以 ; 结束;遇到使用 utf8 编码的地方则需要使用 utf8,而不是 utf-8

  1. 设置 MySQL 允许远程访问:

    • 首先编辑配置文件:vim /etc/mysql/mysql.conf.d/mysqld.cnf
    • i 键进入编辑模式
    • 注释掉 # bind-address = 127.0.0.1
    • 按 Esc 键退出编辑模式,输入 :wq 保存并关闭文件。
  2. 登陆 MySQL,查看 MySQL 用户:select host,user from mysql.user;
  3. 创建新用户:create user '用户名'@'%' identified by '密码';
  4. 授权远程连接 MySQL 的用户:grant all privileges on *.* to '用户名'@'%' identified by '密码';
    • % 表示所有的电脑都可以连接,也可以设置某个 IP地址 进行连接
    • 更新用户密码:update user set password=password("新密码") where user="root";
    • 更改权限过程中可能会出现的问题:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,提示密码不符合要求,这应该是安装的时候,您选择了密码强度为 Strong
    • 这里使用更改密码策略:set global 更改密码策略:set global validate_password_policy=0;
    • 设置密码长度:set global validate_password_length=6;
    • 更新密码:set password=Password('123456');
    • 退出 MySQL:quit\qexit;
    • 使用新密码重新登陆 MySQL,继续进行授权操作。
  5. 刷新权限表,使配置生效:flush privileges;
  6. 重启 MySQL:service mysql restart
  7. 添加监听端口号 3306iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
    • 查看是否被监听:iptables -L -n
    • 设置防火墙打开 3306 端口:ufw allow 3306
  8. 最重要的一步,登录阿里云 —> 控制台 —> 云服务器ECS —> 网络和安全 —> 安全组,在入方向点击配置规则进行配置,3306 端口是访问服务器 MySQL 的,没有的话就添加规则,端口范围选择 3306/3306,授权策略为 允许,授权协议为 MySQL(3306),授权对象设置为 0.0.0.0/0,允许所有外部 IP 访问。
    • 查看 3306 端口是否被监听:netstat -an | grep 3306
    • 显示 tcp6 0 0 :::3306 :::* LISTEN
  9. 远程连接 MySQL 测试,这里偷懒使用了 Windows 的命令行工具(参见附录3)

四. 参考链接

附录 1

  • 查看 MySQL 版本信息与编码:\s
mysql> \s
--------------
mysql Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using EditLine wrapper Connection id: 3
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.24-0ubuntu0.16.04.1 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 16 sec Threads: 1 Questions: 5 Slow queries: 0 Opens: 107 Flush tables: 1 Open tables: 26 Queries per second avg: 0.312
--------------

附录 2

  • 查看 MySQL 编码:show variables like '%char%';
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
  • 设置 MySQL 编码为 utf8
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

附录 3

  • CMD 远程访问 Ubuntu 16.04 下 MySQL 测试:
C:\Users\wumz>mysql -h 公网IP地址 -u 授权用户 -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.24-0ubuntu0.16.04.1 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

Ubuntu16.04安装MySQL的更多相关文章

  1. Ubuntu16.04 安装 MySQL

    本篇介绍如何在Ubuntu系统上安装MySQL数据库,以及介绍数据库的基本命令. 一.下载和安装MySQL 可以通过apt-get下载并安装 sudo apt-get install mysql-se ...

  2. ubuntu16.04 安装mysql

    安装mysql 1.sudo apt-get install mysql-server 2.sudo apt install mysql-client 3.sudo apt install libmy ...

  3. ubuntu16.04安装mysql数据库

    安装 sudo apt-get install mysql-server(安装过程中按提示设置root密码) sudo apt-get install mysql-client sudo apt-ge ...

  4. ubuntu16.04安装jdk/mysql/tomcat (使用apt-get命令)

    安装jdk 更新系统安装包缓存,并且安装OpenJDK8 sudo apt-get update sudo apt-get install openjdk-8-jdk 检查jdk版本 java -ve ...

  5. Ubuntu16.04中Mysql 5.7 安装配置

    记录在Ubuntu 16.04安装Mysql 5.7时遇到的一些问题. Mysql安装 使用如下命令进行安装: 1 sudo apt-get install mysql-server mysql-cl ...

  6. Ubuntu16.04 安装和卸载MySQL数据库

    Ubuntu16.04 安装和卸载MySQL数据库 1 安装 安装非常简单,只需要三个命令 1.1 安装服务端 sudo apt-get install mysql-server 在这一步过程中会有提 ...

  7. MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)

    目录 第一部分.5.6安装.配置.自动备份 第二部分.5.7源码安装.配置.自动备份 第一部分.5.6安装 1.安装mysql sudo apt-get install mysql-server su ...

  8. 阿里云学生服务器搭建网站-Ubuntu16.04安装php开发环境

    阿里云学生服务器搭建网站(2)-Ubuntu16.04安装php开发环境  优秀博文:https://www.linuxidc.com/Linux/2016-10/136327.htm https:/ ...

  9. ubuntu16.04安装wordpress

    ubuntu16.04安装wordpress和centos7安装wordpress存在一定的差异. 当然共性大于差异. 共性是lamp环境. wordpress的必备环境. 先共性再差异. 一.搭建l ...

随机推荐

  1. 在SQL注入中利用MySQL隐形的类型转换绕过WAF检测

    web应用一般采用基于表单的身份验证方式(页面雏形如下图所示),处理逻辑就是将表单中提交的用户名和密码传递到后台数据库去查询,并根据查询结果判断是否通过身份验证.对于LAMP架构的web应用而言,处理 ...

  2. spring和mybatis的整合开发(传统Dao开发方式)

    spring和mybatis整合开发有三种整合方式1.传统DAO方式的开发整合(现在基本上不会用这种方式了,不推荐使用这种方式),2.mapper接口方式的开发整合(基于MapperFactoryBe ...

  3. JavaScript之Ajax Util

    ajax(即:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML))经常在用,却经常忽略了底层的实现机制,今日写个小工具,大家也可拿去使用,如果写 ...

  4. c++ virtual 记录

    虚继承: http://zh.wikipedia.org/wiki/%E8%99%9A%E7%BB%A7%E6%89%BF 解决了菱形继承问题 cB cC 继承cA    cD继承cB,cC    c ...

  5. 2017CCPC秦皇岛 M题Safest Buildings&&ZOJ3993【复杂模拟】

    题意: 给出两个半径R,r,R表示第一次的大圈半径,r表示第二次的小圈半径.第一次大圈的圆心位于(0,0),第二次小圈的圆心未知,但在大圈内,给你一个n,然后给出n个屋子的位置,问这些屋子中,第二次在 ...

  6. 第25月第8天 100-Days-Of-ML-Code

    1.100-Days-Of-ML-Code https://github.com/Avik-Jain/100-Days-Of-ML-Code https://github.com/llSourcell ...

  7. struts2简单入门-Action的三种配置方式

    普通的配置方式 优点:可读性高 缺点:重复的配置太多. 使用情况 一个actian只有一个方法,只需要处理一种请求. 代码演示 <action name="voteResult&quo ...

  8. ES6 基础

    转载自:ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来 ...

  9. Django REST framework 第三章 CBV

    从介绍Django快开始,我们就一直在使用FBV的方式来撰写代码,二者本质上并没有太大的区别,然而到了REST framework,更会倾向于用CBV来写API的视图,后面会看到这个方式的强大,它允许 ...

  10. ANSI C、ISO C、Standard C联系与区别

    做C语言开发的人,经常会遇到“ANSI C”.“ISO C”与“Standard C”三种术语,经常会让人傻傻分不清楚.博主之前按也是搞不清三者的关系,于是某天下定决心,一定要搞清楚三者的关系,先百度 ...