## 运行环境
系统版本: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. cd命令和roscd命令的区别,并解决环境变量问题

    cd命令和roscd命令都是切换到指定目录的命令.不同的是,cd是Linux系统的命令,在使用时必须指定目标目录的完整路径:而roscd是ros系统中的命令,它可以直接切换到指定目录(ros系统中的软 ...

  2. 《考研机试》(一)C/C++基础

    1.setfill/setw使用 2.定义结构体 3.关于字符串读取 4.排序问题:复试不要求一般用:冒泡排序 5.数字和字符之间转换 6.进制转化:10进制转8进制 7.质数判断 8.字符串拷贝函数 ...

  3. NetworkX包

    官方教程 NetworkX是一个创建,操作,研究复杂网络的结构,动态,功能的python包. #创建一个network import networkx as nx G = nx.Graph() #no ...

  4. postman批量接口测试/批量导入/批量参数化简要全过程及遇到问题处理方法

    简单说明下postman批量接口调用的过程及注意事项: 1.报文调试(建议先调通再批量执行,统筹安排时间) 2.参数化,例如: "address": "{{address ...

  5. [Effective Java 读书笔记] 第6章 枚举和注解

    第三十条 用enum代替int 总得来说,使用enum有几点好处 1.编译时的类型安全, 2.可以保证就是自己定义的值,不会有月结风险, 3.每个枚举类型有自己的命名空间 4.枚举可以添加任意的方法和 ...

  6. 一个基于图的数据管理系统-gStore

    gStore是遵循 BSD协议的一个开源项目.一个基于图的 RDF 三元组存储的数据管理系统.该项目是北京大学.滑铁卢大学.香港科技大学的联合研究项目.中国北京大学计算机科学与技术研究所的数据库组对该 ...

  7. Python编程:从入门到实践——【作业】——第六章(字典)

    第六章作业 6-1 人 : 使用一个字典来存储一个熟人的信息, 包括名. 姓. 年龄和居住的城市. 该字典应包含键first_name . last_name . age 和city . 将存储在该字 ...

  8. webpack之打包分析以及prefetching和preloading

    打包分析: https://webpack.js.org/guides/code-splitting/#bundle-analysis        性能优化使用缓存是很有限的,现在更多的应该是再编写 ...

  9. JDBC 及 sql注入问题

    一.相关概念 1.什么是JDBC JDBC(Java Database Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由 ...

  10. Mock模拟数据,前后端分离

    安装 使用npm安装: npm install mockjs; 或直接<script src="http://mockjs.com/dist/mock.js">< ...