我在M2公司做架构之数据库

一、数据库定义

数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映客观事物间的本质联系。数据库能有效地帮助一个组织或企业科学地管理各类信息资源。

数据是数据库中存储的基本对象,是按一定顺序排列组合的物理符号。数据有多种表现形式,可以是数字、文字、图像,甚至是音频或视频,它们都可以经过数字化后存入计算机。

数据库是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。

二、常见的主流数据库有哪些

  • MySQL;
  • SQL Server;
  • Oracle;
  • PostgreSQL;
  • Sybase;
  • DB2;
  • Access。

关于这些主流数据库的详细介绍,可阅读这篇文章:
常见的主流数据库(DBMS)

三、以我常用的MySQL为例,安装相关

曾写过相关博文,归纳如下:
Ubuntu16.04之开发环境构建
centos7之Java开发环境构建

随着时间的流去,上面的链接涉及MySQL部分,难免有其局限性。这里我再次归纳一些通用性步骤。

1.上传mysql压缩包至linux服务器上(放至/usr/software目录下)

2.卸载自带的mysql和mariadb

1
2
3
4
rpm -qa | grep mariadb
rpm -qa | grep mysql

yum remove mariadb-xxx #如果有就卸载,没有忽略即可

3.解压当前目录并重命名

1
2
tar -zxvf mysql-5.7.x.tar.gz
mv mysql-5.7.x mysql

4.添加MySQL用户并授权

1
2
useradd -s /bin/false -M mysql
chown -R mysql:mysql mysql

5.修改my.cnf配置文件(vim /etc/my.cnf,如果没有vim可yum install vim 进行安装)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[mysql]
#修改默认字符集
default-character-set=utf8
#这个是绑定客户端socket文件路径,不然出错还要创建
socket=/usr/software/mysql/mysql.sockt
[mysqld]
#用于后续修改密码时,如果随机密码不对,可以跳过密码验证登录的,修改完密码后再删
掉。
#skip-grant-tables
socket=/usr/software/mysql/mysql.sockt
log_error=/usr/software/mysql/data/error.log
pid_file=/usr/software/mysql/data/mysql.pid
basedir=/usr/software/mysql
datadir=/usr/software/mysql/data
port = 3306
#忽略大小写
lower_case_table_names=0
#服务端默认字符集
character-set-server=utf8
#最大连接数
max_connections=1500
#创建数据库时默认数据引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
#开启event
event_scheduler=ON
#结果字符拼接长度设置
group_concat_max_len=204800

6.初始化MySQL

1
bin/mysqld --initialize --user=mysql --basedir=/usr/software/mysql --datadir=/usr/software/mysql/data

7.拷贝启动程序,将mysql的启动程序拷贝到/etc/init.d/目录下

1
cp /usr/software/mysql/support-files/mysql.server /etc/init.d/mysqld

8.启动MySQL

1
service mysqld start

9.配置环境变量(vim /etc/profile,内容添加到最后一行)

1
2
3
#mysql
export MYSQL_HOME=/usr/software/mysql
export PATH=$PATH:$MYSQL_HOME/bin

添加完后,需执行如下命令,让环境变量生效:

1
source /etc/profile

10.常用命令

1
2
3
4
service mysqld start     #启动
service mysqld stop #关闭    
service mysqld restart   #重启    
service mysqld status    #查看运行状态

四、2021年基于数据库的一些教训和思考

这是我今年写的一些比较有深度的文章,感兴趣的朋友可以阅读:
数据库被删之反思
数据库设计之思考
Linux设备上没有空间之复盘
数据表设计之主键自增、UUID或联合主键

五、MySQL数据库一些问题及其解决方案

这是我过去写的关于MySQL相关问题解决方案、学习等相关文章,感兴趣的朋友可以阅读:
数据库时间与系统时间不同步问题之解决

mysqld: error while loading shared libraries: libaio.so.1

MySQL之集群配置

Error Code: 1153 - Got a packet bigger than ‘max_allowed_packet’ bytes

nginx之MySQL代理

mysql快速插入数据三种方法

ERROR 1006 (HY000): Can’t create database

mysql出现unblock with ‘mysqladmin flush-hosts’

SQL优化之博客案例

MySQL体系结构和存储引擎

MySQL日期字符串转换

attempted to return null from a method with a primitive return type (int).

mysql查询结果多列拼接查询

《高性能MySQL》之EXPLAIN

《高性能MySQL》之MySQL查询性能优化

MySQL之replace函数应用

XAMPP启动mysql遇到的问题

MySQL5.7授权用户远程访问

Ubuntu16.04忘记MySQL5.7的root用户密码之解决方案

请在mysql配置文件修sql-mode或sql_mode为NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

使用sqlyog连接 Mysql 出现1251错误

The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone.

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

MySQL去除查询结果重复

MySQL备份命令

文章目录
  1. 一、数据库定义
  2. 二、常见的主流数据库有哪些
  3. 三、以我常用的MySQL为例,安装相关
    1. 1.上传mysql压缩包至linux服务器上(放至/usr/software目录下)
    2. 2.卸载自带的mysql和mariadb
    3. 3.解压当前目录并重命名
    4. 4.添加MySQL用户并授权
    5. 5.修改my.cnf配置文件(vim /etc/my.cnf,如果没有vim可yum install vim 进行安装)
    6. 6.初始化MySQL
    7. 7.拷贝启动程序,将mysql的启动程序拷贝到/etc/init.d/目录下
    8. 8.启动MySQL
    9. 9.配置环境变量(vim /etc/profile,内容添加到最后一行)
    10. 10.常用命令
  4. 四、2021年基于数据库的一些教训和思考
  5. 五、MySQL数据库一些问题及其解决方案