MySQL

作者: 奥特曼255 | 来源:发表于2018-08-30 13:34 被阅读0次

    服务器端

    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

          本文链接:https://www.haomeiwen.com/subject/puzcsftx.html