MySQL

服务器端

1. 安装:

  • 安装
    sudo apt-get install mysql-server

  • 启动
    sudo service mysql start

  • 停止
    sudo service mysql stop

  • 重启
    sudo service mysql restart

2. 配置:

  • 找到mysql配置文件并修改
    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

  • 主要配置项如下

bind-address表示服务器绑定的ip,默认为127.0.0.1

port表示端口,默认为3306

datadir表示数据库目录,默认为/var/lib/mysql

general_log_file表示普通日志,默认为/var/log/mysql/mysql.log

log_error表示错误日志,默认为/var/log/mysql/error.log
  • 重启mysql,生效

客户端

  • 图形化界面 navicat
  • 命令行客户端
# 安装
sudo apt-get install mysql-client

# 查看帮助文档
mysql --help

# 运行客户端
# 默认连接本地服务器
mysql -u[username] -p[password]
# 远程连接
mysql -hip地址 -uroot -p

# 退出
exit

数据类型

  • 整数:int,bit
  • 小数:decimal
  • 字符串:varchar,char,text
  • 日期时间: date, time, datetime
  • 枚举类型(enum)

特别说明:

  • decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位
  • char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
  • varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
  • 字符串text表示存储大文本,当字符大于4000时推荐使用
  • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
  • 更全的数据类型可以参考http://blog.csdn.net/anxpp/article/details/51284106

约束

  • 主键primary key
  • 非空not null
  • 惟一unique
  • 默认default
  • 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
  • 说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制

存储引擎 —— MyISAM与InnoDB区别

两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁。

在MySQL中,常用的数据引擎有MyISAM和InnoDB。两种类型最主要的差别就是Innodb 支持事务处理、外键和行级锁。而MyISAM不支持。所以MyISAM往往就容易被人认为只适合在小项目中使用。这里所说的行级锁是指最小粒度的锁,也支持表级锁。MyISAM支持表级锁,不支持事务、行级锁和外键。MyISAM强调的是性能,其执行性能比InnoDB要好,在少并发的环境下,查找(下面会讲原因)、插入(由于要维护数据库的完整性)等要比InnoDB要好。建议在对事务有要求或者高并发的情况下,用InnoDB引擎,否则用MyISAM。

存储引擎,更多细节,可参考:
https://blog.csdn.net/xifeijian/article/details/20316775
https://blog.csdn.net/mcfer/article/details/50958440

备份

  • 进入 mysql 库目录
cd /var/lib/mysql
  • 运行 mysqldump 命令
mysqldump -uroot -p 数据库名 > ~/bak.sql

# 按提示输入mysql的密码

恢复

  • 连接mysql,创建新的数据库
  • 退出连接,执行如下命令
mysql -uroot -p 新数据库名 < bak.sql

# 按提示输入mysql的密码

参考资料

https://blog.csdn.net/Scrat_Kong/article/details/81559935
https://blog.csdn.net/Scrat_Kong/article/details/81560316

你可能感兴趣的:(MySQL)