## 运行环境
系统版本:Ubuntu 16.04.6 LTS
软件版本:MYSQL-5.7
硬件要求:无

安装过程

1、安装APT-MYSQL存储库

APT-MYSQL存储库由MYSQL官网提供。选择安装MYSQL-5.7版本。

root@localhost:~# wget https://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
root@localhost:~# dpkg -i mysql-apt-config_0.8.11-1_all.deb

2、更新APT缓存

root@localhost:~# apt-get update

3、安装MYSQL

安装过程中会弹出一个图形化界面,需要我们输入一个高强度的MYSQL超级管理员“root”账号的密码,输入完成后即可完成安装,并且MYSQL服务会自动启动。

注:这里输入的密码只用于安装MYSQL,后面不会使用。

root@localhost:~# apt-get -y install mysql-community-server --allow-unauthenticated



4、创建一个数据库实例,停止服务

MYSQL在安装完成时,会自动启动MYSQL服务,我们需要将其停止。

root@localhost:~# systemctl stop mysql

5、创建一个数据库实例,创建相关目录并授权

root@localhost:~# mkdir -p /data/mysql/data
root@localhost:~# mkdir -p /data/mysql/binlog
root@localhost:~# mkdir -p /data/mysql/relaylog
root@localhost:~# mkdir -p /data/mysql/log
root@localhost:~# chown -R mysql.mysql /data/mysql

6、创建一个数据库实例,创建配置文件

root@localhost:~# vim /data/mysql/my.cnf
[mysqld]
### basic ###
user = mysql
server_id = 1
bind-address = 0.0.0.0
port = 43306
pid-file = /data/mysql/mysqld.pid
socket = /data/mysql/mysqld.sock
datadir = /data/mysql/data
default_storage_engine = InnoDB
# explicit_defaults_for_timestamp = true
symbolic-links = 0 ### skip password ###
skip-grant-tables = false ### errorlog ###
log_error = /data/mysql/log/error.log ### binlog ###
log-bin = /data/mysql/binlog/mysql-bin
log_bin_index = /data/mysql/binlog/mysql-bin.index
binlog_cache_size = 4MB
max_binlog_size = 200MB
# log_bin_trust_function_creators = 1
# expire_logs_days = 30 ### relaylog ###
relay-log = /data/mysql/relaylog/mysql-relay-bin
relay_log_index = /data/mysql/relaylog/mysql-relay-bin.index ### slowlog ###
slow_query_log = ON
slow_query_log_file = /data/mysql/log/slow.log
long_query_time = 10 ### network ###
back_log = 512
max_allowed_packet = 64MB
max_connections = 1024
max_connect_errors = 100 ### buffer ###
# join_buffer_size = 1MB
# read_buffer_size = 1MB
# read_rnd_buffer_size = 1MB
# sort_buffer_size = 1MB ### query_cache ###
query_cache_type = ON
query_cache_size = 256MB
table_open_cache = 5000
thread_cache_size = 16 ### innodb ###
innodb_log_group_home_dir = /data/mysql/data
innodb_data_home_dir = /data/mysql/data
innodb_data_file_path = ibdata1:1G:autoextend
# innodb_buffer_pool_size = 2GB
# innodb_buffer_pool_instances = 1
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 2GB
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16MB
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_lock_wait_timeout = 60
innodb_thread_concurrency = 4
innodb_open_files = 65535
open-files-limit = 65535
root@localhost:~# vim /etc/mysql/my.cnf
[mysql]
socket = /data/mysql/mysqld.sock [mysqladmin]
socket = /data/mysql/mysqld.sock [mysqldump]
socket = /data/mysql/mysqld.sock

7、创建一个数据库实例,配置Apparmor

Apparmor是Ubuntu下一个应用防火墙,相当于CentOS中的Selinux,它控制了应用对文件系统的操作权限。我们需要添加相关条目,允许MYSQL进程对相关目录拥有可操纵权限。

root@localhost:~# vim /etc/apparmor.d/usr.sbin.mysqld
/usr/sbin/mysqld {
/data/mysql/ r,
/data/mysql/** rwk, /data/mysql/data/ r,
/data/mysql/data/** rwk, /data/mysql/binlog/ r,
/data/mysql/binlog/** rwk, /data/mysql/relaylog/ r,
/data/mysql/relaylog/** rwk, /data/mysql/log/ r,
/data/mysql/log/** rwk,
...
}
root@localhost:~# systemctl restart apparmor.service

8、创建一个数据库实例,初始化

初次运行,我们需要初始化数据库实例,生成基础数据库。

root@localhost:~# mysqld --defaults-file=/data/mysql/my.cnf --initialize

9、创建一个数据库实例,修改系统服务控制

将数据库实例服务交由系统管理工具“systemctl”托管。

root@localhost:~# vim /lib/systemd/system/mysql.service
[Unit]
Description=MySQL Community Server
After=network.target [Install]
WantedBy=multi-user.target [Service]
User=mysql
Group=mysql
Type=forking
PermissionsStartOnly=true
PIDFile=/data/mysql/mysqld.pid
#ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld --defaults-file=/data/mysql/my.cnf --daemonize
TimeoutSec=600
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755

10、创建一个数据库实例,启动服务

root@localhost:~# systemctl daemon-reload
root@localhost:~# systemctl start mysql
root@localhost:~# systemctl enable mysql
root@localhost:~# netstat -lnupt |grep mysql
tcp 0 0 0.0.0.0:43306 0.0.0.0:* LISTEN 13046/mysqld

11、创建一个数据库实例,重置超级管理员密码

我们需要通过错误日志获取初始化时生成的临时密码。

密码必须符合复杂性要求,需要字母大小写+数字+特殊符号。

root@localhost~# cat /data/mysql/log/error.log |grep password
2019-05-05T03:55:21.001110Z 1 [Note] A temporary password is generated for root@localhost: qUJjC#oae0<l
root@localhost:~# mysqladmin -uroot -p'qUJjC#oae0<l' password 'ABCabc-123'

12、访问测试

root@localhost:~# mysql -uroot -p'ABCabc-123' -A
mysql>

安装MYSQL到Ubuntu(APT)的更多相关文章

  1. 安装MySQL到Ubuntu 20.04

    本文的内容主要来自对How To Install MySQL on Ubuntu 20.04的翻译.在根据该文的指导下,我在自己的Ubuntu 20.04.3 LTS版本中安装了MySQL 8. St ...

  2. 安装mysql到ubuntu

    Ubuntu 16.04上安装MySQL步骤: 如果你使用的是Ubuntu 16.04以前的版本,可以看这里:Ubuntu 14.04/15.10升级到Ubuntu 16.04 LTS.一. 安装My ...

  3. 在 Ubuntu 中安装 MySQL 指南

    安装MySQL 在Ubuntu上可以使用Ubuntu Software Center或者apt命令来安装MySQL,两种方式都十分方便. 1. 使用Ubuntu Software Center:打开U ...

  4. ubuntu安装mysql的步骤和配置总结

    因为经常要在ubuntu linux的环境下做一些开发工作.很多时候也牵涉到mysql相关的开发工作.于是就把整个过程做了一个整理,以方便以后再次安装配置的时候参考,也希望能够让新手少走点弯路. 其实 ...

  5. ubuntu安装mysql数据库方法

    ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x86.64位和ppc架构.一个比较流行的Linux操作系统,不仅简单易用,而且和Windows相容性非常好.那么 ...

  6. ubuntu16安装MySQL

    MySQL 是一种开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分安装.它使用关系数据库和SQL(结构化查询语言) ...

  7. linux django 知识点 安装mysql数据库 和 pycharm

     django 命令及相关知识点 1. 启动 pycharm 命令:sh pycharm.sh 2. 创建 django 项目 : django-admin.py startproject Hello ...

  8. 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8   在安装的时候报错: -1ubu1604-amd64.deb 提示: ...

  9. Ubuntu 16.04 安装mysql并设置远程访问

    说明: 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过ubuntu安装mysql,于是乎搜索了很多技术文件,比着葫芦画 ...

随机推荐

  1. C++ 类模板详解(一):概念和基本使用方式

    与函数模板类似地(C++函数模板详解(一):概念和特性) ,类也可以被一种或多种类型参数化.例如,容器类就是一个具有这种特性的典型例子,它通常被用于管理某种特定类型的元素.只要使用类模板,我们就可以实 ...

  2. ros中launch启动文件的使用方法

    launch文件:通过XML文件实现多节点的配置和启动(可自动启动ROS Master) launch文件中包含很多标签和属性 *launch文件语法 <launch> <node ...

  3. f(n)=1-1/2+1/3-1/4...+1/n

    #include <stdio.h>//f(n)=1+1/1+1/2+1/3+...+1/n int main(){ int n,i; double sum=0.0; scanf(&quo ...

  4. StringBuffer StringBuilder String 区别

    String       字符串常量   不可变  使用字符串拼接时是不同的2个空间 StringBuffer  字符串变量   可变   线程安全  字符串拼接直接在字符串后追加 StringBui ...

  5. DOCKER 学习笔记8 Docker Swarm 集群搭建

    前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...

  6. python学习记录(八)

    0910--https://www.cnblogs.com/fnng/archive/2013/04/28/3048356.html Python异常 Python用异常对象(exception ob ...

  7. Kafka常用topic操作命令汇总

    offset topic consumer-group consumer producer producer-golang topic 工具 https://cwiki.apache.org/conf ...

  8. 第3章 JDK并发包(三)

    3.2 线程复用:线程池 一种最为简单的线程创建和回收的方法类似如下代码: new Thread(new Runnable() { @Override public void run() { // d ...

  9. DOCKER 学习笔记9 Kubernetes (K8s) 弹性伸缩容器 下

    前言 从上一篇看来,我们已经对于Kubernetes ,通过minikube 建立集群,而后使用kubectl 进行交互,对Deployment 部署以及服务的暴露等.这节,将学习弹性的将服务部署到多 ...

  10. VFP检测SQL Server的五个实例代码

    ** 需要指出的是,无论下面哪种方式的代码,都需要打开本机的网络共享,否则找不到SQL服务器** 例一 ************************************************ ...