## 运行环境
系统版本: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. java加解密算法

    什么是加密算法?百度百科给出的解释如下: 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容, ...

  2. LUA提取免费迅雷账号

    --获取http://www.521xunlei.com/ 免费迅雷账号 function getPageid() local http = require("socket.http&quo ...

  3. Java 接口及接口回调_Chris

    题目: 利用接口和接口回调,实现简单工厂模式,当输入不同的字符,代表相应图形时,利用工厂类获得图形对象,再计算以该图形为底的柱体体积. 代码: 1.Test.java /** * 测试类,包含一个主方 ...

  4. 目标检测之RCNN,fast RCNN,faster RCNN

    RCNN: 候选区生成(Selective Search). 分割成2000左右的候选小区域 合并规则:颜色.纹理相近,尺度均匀,合并后形状规则 特征提取. 归一候选区尺寸为227×227,归一方法. ...

  5. TCP、UDP 协议的区别

    TCP 面向连接 可靠 传输形式:字节流 传输效率:慢 所需资源:多 首部字节:20-60 应用场景:要求通讯数据可靠(如文件传输.邮件传输) UPD 无连接 不可靠 传输形式:数据报文段 传输效率: ...

  6. Go语言实现:【剑指offer】调整数组顺序使奇数位于偶数前面

    该题目来源于牛客网<剑指offer>专题. 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和 ...

  7. python学习(2)关于字符编码

    关于字符编码的学习内容笔记如下: 1.计算机只能用0和1来进行记录和存储.计算机是二进制. 2.ASCII(American Standard Code for Information Interch ...

  8. MetaWebLog API — 一个多平台文章同步的思路

    文章选自我的博客:https://blog.ljyngup.com/archives/578.html/ 起因 为了给博客带来流量,我在CSDN,博客园,简书上开通了账号并且把博客里的一些可以发布的文 ...

  9. 安装ik分词插件

    下载IK安装包 https://github.com/medcl/elasticsearch-analysis-ik https://github.com/medcl/elasticsearch-an ...

  10. json-server的简单使用

    json-server是一个在前端本地运行,可以存储json数据的server(服务器),该服务器只支持 get 方法获取,不支持 post 方法获取,使用express工具可以使用post方法. V ...