## 1.什么是 MySQL 数据库?

MySQL 数据库是一个关系型数据库管理系统,是服务器领域中受欢迎的开源数据库系统,目前有 Oracle 公司主要负责运营与维护;

## 2.MySQL 数据库的特点

* 多线程、多用户;
* 简单易用、查询速度快;
* 安全可靠;
* 基于 C/S 架构;

## 3.MySQL 数据库的编译安装

避免出现端口和程序冲突的现象,先查询 MySQL 软件的安装情况,确认没有使用以 RPM 方式安装的 mysql-server、mysql 软件包,否则将其卸载,并安装自带的 ncurses-devel 包;

#rpm -q mysql-server mysql
package mysql-server is not installed
mysql-5.1.71-1.el6.x86_64
#rpm -ivh /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
Preparing... ########################################### [100%]
package ncurses-devel-5.7-3.20090208.el6.x86_64 is already installed

解压 cmake 包,编译并安装 cmake 包;

#tar zxf cmake-2.8.6.tar.gz
#cd cmake-2.8.6
#./configure
#gmake && gmake install

创建运行用户,从而加强数据库服务的权限控制,使用新创建的运行用户,此运行用户不需要直接登录到系统,可以不创建宿主文件夹。

#groupadd mysql
You have new mail in /var/spool/mail/root
#useradd -M -s /sbin/nologin mysql -g mysql

将下载的 MySQL 源码包进行解压,释放到 /usr/src 目录下,并切换到源码目录。

#tar zxf mysql-5.5.22.tar.gz -C /usr/src
#cd /usr/src/mysql-5.5.22/

配置会用到多种字符集的网页,可为数据库系统支持不同的字符集编码,将默认使用的字符集设置为 utf8,并添加其他字符集的支持。

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

上述配置命令中,各选项参数的含义:

// -DCMAKE_INSTALL_PREFIX:指定将 mysql 数据库安装到某个目录下;
// -DSYSCONFDIR:指定初始化参数文件目录;
// -DDEFAULT_CHARSET:指定默认使用的字符集编码;
// -DDEFAULT_COLLATION:指定默认使用的字符集校对规则;
// -DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码;

编译并安装

#make && make install

对数据库目录进行权限设置

#chown -R mysql:mysql /usr/local/mysql
You have new mail in /var/spool/mail/root

MySQL 源码目录中的 support-files 文件夹下,提供了适合不同数据库的样本配置文件,在不确定数据库系统的应用规模下,选择 my-medium.cnf 文件,可满足企业的应用需求,并根据内容建立 MySQL 数据库系统的 /etc/my.cnf 配置文件。

#rm -rf /etc/my.cnf //如果原来 etc 文件夹下有 my.cnf 文件则可以删除
#cp support-files/my-medium.cnf /etc/my.cnf

初始化数据库,将运行用户 mysql 的身份执行初始化脚本 mysql_install_db,指定数据存放目录等;

#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

验证数据库是否初始化成功;

![file](https://img2018.cnblogs.com/blog/1492191/201908/1492191-20190826123445436-2098006510.jpg)

为方便在任何目录下使用 MySQL 命令,需要在 /etc/profile 设置环境变量;

#echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
You have new mail in /var/spool/mail/root
#. /etc/profile // 立即生效

将 support-files 文件夹下的 mysql.server 脚本文件,将其复制到 /etc/rc.d/init.d 目录下并改名为:mysqld,设置执行权限,通过 chkconfig 命令添加为 mysqld 系统服务。

#cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#chmod +x /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld

若启动 mysqld 系统服务,可使用 service 工具或执行 /etc/init.d/mysqld 脚本来控制 MySQL 数据库服务,当 mysqld 系统服务启动后,可执行 netstat -anpt | grep mysqld 命令来进行验证 TCP 端口是否已经监听到了;

#service mysqld start
Starting MySQL.. [确定]
#/etc/init.d/mysqld status
MySQL running (59041) [确定]
#netstat -anpt | grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 59041/mysqld

## 4.访问 MySQL 数据库

访问 MySQL 数据库时,我们可以使用 Linux 系统中自带的客户端 mysql 命令工具。默认的管理员用户为:root,密码为空。

若要使用未设置密码的 root 用户登录 MySQL 数据库时,可直接执行 mysql -u root 命令即可登录;

若要使用设置了密码的 root 用户登录 MySQL 数据库时,可直接执行 mysql -u root -p 命令输入正确的密码即可登录;

登录成功后,会进入提示符为“mysql>”数据库的操作环境,可在该环境下输入各种 sql 语句对数据库进行管理,切记每条 sql 语句以分号“;”结束,且操作的 sql 语句可不区分大小写。

执行“show master logs”语句查看当前数据库服务的日志文件信息。

若要退出“mysql>”数据库的操作环境,可执行“exit”或“quit”命令可退出 mysql 命令行工具。

![file](https://img2018.cnblogs.com/blog/1492191/201908/1492191-20190826123445662-42501107.jpg)

## 推荐阅读

1、[SQLServer、MySQL、Oracle三种数据库的优缺点总结](https://mp.weixin.qq.com/s/XevS8Dyi0iuVCz3_dagPdA)

2、[记住,永远不要在 Mysql 中使用 “utf8”](https://mp.weixin.qq.com/s/8vlyf8mIHEXPKRmzCivzRw)

3、[千行 MySQL 详细学习笔记,你收藏了吗?](https://mp.weixin.qq.com/s/wN-z2qAfCd1X5SJXz907SA)

4、[我必须得告诉大家的MySQL优化原理](https://mp.weixin.qq.com/s/xwwSsT2Lsa22HQJLiJ61JQ)

5、[Oracle SQL 性能优化40条,必看!](https://mp.weixin.qq.com/s/V7wR_zZD3aAYB0wxLa-cGg)

6、[Linux环境下Oracle数据库常用命令](https://mp.weixin.qq.com/s/6wZQ3GKQSDUvD7cohhUQnw)

7、[Oracle数据库环境搭建](https://mp.weixin.qq.com/s/PF-pRDylB-MDecD__sKBIA)

8、[Oracle客户端PLSQL的使用说明](https://mp.weixin.qq.com/s/BB_90h-tLUlf7keFbTvoTA)

9、[Linux下MySQL基本操作](https://mp.weixin.qq.com/s/NMF9PvXc8zlO3w8gZIardg)

10、[2019年最好用的6款数据库监控工具](https://mp.weixin.qq.com/s/gYsU2f-FIh92rRr2-MkLqA)

![file](https://img2018.cnblogs.com/blog/1492191/201908/1492191-20190826123445882-450230105.jpg)
> 欢迎关注我的公众号:杰哥的IT之旅

MySQL | MySQL 数据库系统(一)的更多相关文章

  1. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    有时候,当我们使用"mysql"."mysqladmin"."mysqldump"等命令管理数据库时,服务器抛出类似如下错误: 一.错误现场 ...

  2. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    从供应商手中接手一个云平台(Windwos Azure)上的MySQL数据库,登录数据库时遇到错误: $mysql -uroot -p Enter password: ERROR 2002 (HY00 ...

  3. mac ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.sock' (111)

    之前装了mysql,今天打开mysql的时候报了个Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.s ...

  4. 更换mysql数据目录后出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的解决办法

    服务器上的mysql默认数据目录为/var/lib/mysql/,同时服务器的/空间不是很大,而近期又有大量的日志需要导入进行分析,时常搞得/的空间捉襟见肘,晚上一狠心就想把mysql的数据目录转移到 ...

  5. 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ ( ...

  6. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)--MySQL错误

    MySQL错误整理: 错误一: ERROR (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/my ...

  7. Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法 + Linux启动/停止/重启Mysql数据库的方法

    启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/m ...

  8. Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ;

    Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ; 如果你在网上search这个 ...

  9. 解决: Can’t connect to local MySQL server through socket /var/lib/mysql/mysql.sock

    今天在搬瓦工上使用mysql 命令行,总报一个这样的错:Can't connect to local MySQL server through socket '/xxxxx/mysql.sock',一 ...

随机推荐

  1. 关于Dev-C++用户所必须知道的知识

    开启这几个警告选项,才能拥有GCC编译器的较为全面的报错和警告 另外,目前Dev-C早已停止更新(停滞在版本号5.1,内置的GCC为4.9版本),且使用其检测数组变量也挺麻烦的,实在不推荐使用.

  2. 推荐一款移动端小视频App声咖视频

    推荐一款移动端小视频App声咖视频 1 介绍 声咖app,这款软件是一款声音交友社交软件,在上面你可以轻松互动,找到你的知心朋友,并且可以自由添加好友,与其他人互动,让交友更加轻松!, 2 特色功能介 ...

  3. 粘包和拆包及Netty解决方案

    在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接.由于微服务往对方发送信息的时候,所有的请求都是使 ...

  4. intelliJ 社区版-找不到 plugins选项

    丢人了... 今天 在intelliJ社区版上面找不到 plugins 选项了, 其实是有的,我看的是项目的 settings 当然没有了, (1)如果直接点击File==> 这样就是没有plu ...

  5. 深入理解C语言 - 指针使用的常见错误

    在C语言中,指针的重要性不言而喻,但在很多时候指针又被认为是一把双刃剑.一方面,指针是构建数据结构和操作内存的精确而高效的工具.另一方面,它们又很容易误用,从而产生不可预知的软件bug.下面总结一下指 ...

  6. oracle数据库表约束、视图、索引—该记录为本人以前微博的文章

    一.Oracle 数据库常用操作续关于创建表时创建约束1.创建表的时候增加约束----约束是定义表中的数据应该遵循的规则或者满足的条件----约束是建立在列上的,让某一列或者某几列数据之间有约束--- ...

  7. Ansible15:文件管理模块及Jinja2过滤器

    目录 常用文件管理模块 1. file 2. synchronize 3. copy 4. fetch 5. lineinfile 6. stat 7. blockinfile Jinja2模板管理 ...

  8. Android studio(AS) svg图片使用

    1.下载svg文件,https://www.iconfont.cn/阿里的2.通过AS - New - Vectro Asset转换成安卓可用的xml文件(ic_back.xml)3.配置Gradle ...

  9. ElasticSearch如何更新集群的状态

    ElasticSearch如何更新集群的状态 最近发生了很多事情,甚至对自己的技术能力和学习方式产生了怀疑,所以有一段时间没更新文章了,估计以后更新的频率会越来越少,希望有更多的沉淀而不是简单地分享. ...

  10. javascript的对象与字符串相互转换

    因为对象不利于网络传输,因此要转换成字符串,转换成字符串之后又要考虑怎么将这个字符串转换回对象,以便取得对象中的属性. 常用的做法是将对象转换为JSON字符串,这里的转换方法也是用的JSON官方提供的 ...