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

安装过程

1、安装APT-MYSQL存储库

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

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

2、更新APT缓存

  1. root@localhost:~# apt-get update

3、安装MYSQL

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

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

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



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

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

  1. root@localhost:~# systemctl stop mysql

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

  1. root@localhost:~# mkdir -p /data/mysql/data
  2. root@localhost:~# mkdir -p /data/mysql/binlog
  3. root@localhost:~# mkdir -p /data/mysql/relaylog
  4. root@localhost:~# mkdir -p /data/mysql/log
  5. root@localhost:~# chown -R mysql.mysql /data/mysql

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

  1. root@localhost:~# vim /data/mysql/my.cnf
  2. [mysqld]
  3. ### basic ###
  4. user = mysql
  5. server_id = 1
  6. bind-address = 0.0.0.0
  7. port = 43306
  8. pid-file = /data/mysql/mysqld.pid
  9. socket = /data/mysql/mysqld.sock
  10. datadir = /data/mysql/data
  11. default_storage_engine = InnoDB
  12. # explicit_defaults_for_timestamp = true
  13. symbolic-links = 0
  14. ### skip password ###
  15. skip-grant-tables = false
  16. ### errorlog ###
  17. log_error = /data/mysql/log/error.log
  18. ### binlog ###
  19. log-bin = /data/mysql/binlog/mysql-bin
  20. log_bin_index = /data/mysql/binlog/mysql-bin.index
  21. binlog_cache_size = 4MB
  22. max_binlog_size = 200MB
  23. # log_bin_trust_function_creators = 1
  24. # expire_logs_days = 30
  25. ### relaylog ###
  26. relay-log = /data/mysql/relaylog/mysql-relay-bin
  27. relay_log_index = /data/mysql/relaylog/mysql-relay-bin.index
  28. ### slowlog ###
  29. slow_query_log = ON
  30. slow_query_log_file = /data/mysql/log/slow.log
  31. long_query_time = 10
  32. ### network ###
  33. back_log = 512
  34. max_allowed_packet = 64MB
  35. max_connections = 1024
  36. max_connect_errors = 100
  37. ### buffer ###
  38. # join_buffer_size = 1MB
  39. # read_buffer_size = 1MB
  40. # read_rnd_buffer_size = 1MB
  41. # sort_buffer_size = 1MB
  42. ### query_cache ###
  43. query_cache_type = ON
  44. query_cache_size = 256MB
  45. table_open_cache = 5000
  46. thread_cache_size = 16
  47. ### innodb ###
  48. innodb_log_group_home_dir = /data/mysql/data
  49. innodb_data_home_dir = /data/mysql/data
  50. innodb_data_file_path = ibdata1:1G:autoextend
  51. # innodb_buffer_pool_size = 2GB
  52. # innodb_buffer_pool_instances = 1
  53. innodb_flush_method = O_DIRECT
  54. innodb_flush_log_at_trx_commit = 2
  55. innodb_log_file_size = 2GB
  56. innodb_log_files_in_group = 2
  57. innodb_log_buffer_size = 16MB
  58. innodb_read_io_threads = 4
  59. innodb_write_io_threads = 4
  60. innodb_lock_wait_timeout = 60
  61. innodb_thread_concurrency = 4
  62. innodb_open_files = 65535
  63. open-files-limit = 65535
  64. root@localhost:~# vim /etc/mysql/my.cnf
  65. [mysql]
  66. socket = /data/mysql/mysqld.sock
  67. [mysqladmin]
  68. socket = /data/mysql/mysqld.sock
  69. [mysqldump]
  70. socket = /data/mysql/mysqld.sock

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

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

  1. root@localhost:~# vim /etc/apparmor.d/usr.sbin.mysqld
  2. /usr/sbin/mysqld {
  3. /data/mysql/ r,
  4. /data/mysql/** rwk,
  5. /data/mysql/data/ r,
  6. /data/mysql/data/** rwk,
  7. /data/mysql/binlog/ r,
  8. /data/mysql/binlog/** rwk,
  9. /data/mysql/relaylog/ r,
  10. /data/mysql/relaylog/** rwk,
  11. /data/mysql/log/ r,
  12. /data/mysql/log/** rwk,
  13. ...
  14. }
  15. root@localhost:~# systemctl restart apparmor.service

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

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

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

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

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

  1. root@localhost:~# vim /lib/systemd/system/mysql.service
  2. [Unit]
  3. Description=MySQL Community Server
  4. After=network.target
  5. [Install]
  6. WantedBy=multi-user.target
  7. [Service]
  8. User=mysql
  9. Group=mysql
  10. Type=forking
  11. PermissionsStartOnly=true
  12. PIDFile=/data/mysql/mysqld.pid
  13. #ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
  14. ExecStart=/usr/sbin/mysqld --defaults-file=/data/mysql/my.cnf --daemonize
  15. TimeoutSec=600
  16. LimitNOFILE = 65535
  17. Restart=on-failure
  18. RestartPreventExitStatus=1
  19. RuntimeDirectory=mysqld
  20. RuntimeDirectoryMode=755

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

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

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

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

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

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

12、访问测试

  1. root@localhost:~# mysql -uroot -p'ABCabc-123' -A
  2. 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. 计算机原理基础:DNS

    DNS服务的作用 将域名解析成IP地址 端口号:53 域名服务器 根域名服务器 所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址. 不管是哪一个本地域名服务器,若要对因特网上任何一个域名进 ...

  2. HDU2066dijkstra模板题

    问题描述: 题目描述:Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中    会遇见很多人(白马王 ...

  3. Rust语言Actix-web框架连接Redis数据库

    Rust语言Actix-web框架连接Redis数据库 actix-web2.0终于发布了,不再是测试版本,基于actor系统再加上异步支持,使得actix-web成为了目前响应速度最快的服务器框架, ...

  4. Go语言实现:【剑指offer】把数组排成最小的数

    该题目来源于牛客网<剑指offer>专题. 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字 ...

  5. 文件共享服务之Samba

    一.Samba服务概述 在Windows网络环境中.机之间进行文件打印和共享是通过微软自己的SMB/CIFS协议来实现的.SMB(服务消息块)和CIFS(通用互联网文件系统)这两个都是微软的私有协议 ...

  6. 并发编程之Master-Worker模式

    我们知道,单个线程计算是串行的,只有等上一个任务结束之后,才能执行下一个任务,所以执行效率是比较低的. 那么,如果用多线程执行任务,就可以在单位时间内执行更多的任务,而Master-Worker就是多 ...

  7. 见异思迁:K8s 部署 Nginx Ingress Controller 之 kubernetes/ingress-nginx

    前天才发现,区区一个 nginx ingress controller 竟然2个不同的实现.一个叫 kubernetes/ingress-nginx ,是由 kubernetes 社区维护的,对应的容 ...

  8. 安装python 第三方库(whl,py格式)

      注意:在python环境中输入  help('modules')   可以列出所有已经安装的模块     1.windows平台下:            1..1安装whl文件       安装 ...

  9. 【转】Android之四大组件、六大布局、五大存储

    文章来自:http://blog.csdn.net/shenggaofei/article/details/52450668 一.四大组件: Android四大组件分别为activity.servic ...

  10. web前后端交互,nodejs

    手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元 web前后端交互 前后端交互可以采用混合 ...