linux运维架构之路-MySQL

Posted Demon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux运维架构之路-MySQL相关的知识,希望对你有一定的参考价值。

一、数据库管理系统

1、RDBMS关系型数据库特点

①二维表

②典型产品Oracle传统企业,MySQL是互联网企业产品

③数据存取通过SQL

④最大的特点,数据安全性很强(ACID)

2、NoSQL非关系型数据库特点

①不是否定关系型数据库,做关系型数据库的补充

②典型产品:Redis持久化缓存、MongoDB、Memcached

③管理不适用SQL管理,而是用一些特殊的API或者数据接口

二、MySQL安装方式

1、Yum安装方便、安装速度快,无法定制

2、二进制:不方便安装,解压即可使用,无法定制

3、编译安装:可定制,安装慢

5.5之前:./configure make && make install

5.5之后:cmake gmake

4、定制RPM包,先编译然后制作rpm再制作yum仓库,然后yum安装

       安装简单、速度快,可定制,定制时间长,比较复制,大型企业都会选择定制RPM

三、实战编译安装MySQL-5.6.36

1、环境

[[email protected] mysql-5.6.36]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[[email protected] mysql-5.6.36]# uname -r
2.6.32-696.el6.x86_64
[[email protected] mysql-5.6.36]# /etc/init.d/iptables status
iptables: Firewall is not running.
[[email protected] mysql-5.6.36]# getenforce 
Disabled
[[email protected] mysql-5.6.36]# hostname -I
172.19.5.54 172.16.1.54

2、安装

mkdir /server/tools/ -p
cd /server/tools/
wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz
tar xf mysql-5.6.36.tar.gz
cd mysql-5.6.36
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 -DMYSQL_DATADIR=/application/mysql-5.6.36/data -DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLE_DOWNLOADS=1 -DWITH_DEBUG=0
make && make install
ln -s /application/mysql-5.6.36/ /application/mysql
\cp /server/tools/mysql-5.6.36/support-files/my*.cnf /etc/my.cnf
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql
cp /server/tools/mysql-5.6.36/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
chkconfig mysqld on
chkconfig --list mysqld
mkdir /application/mysql/tmp
chown -R mysql.mysql /application/mysql/
echo PATH=/application/mysql/bin/:$PATH >>/etc/profile
source /etc/profile
/etc/init.d/mysqld start

Cmake的作用

①定制软件的安装路径
②定制mysql的源程序和命令脚本
	bin/mysqld(二进制的)关键守护程序源码
	bin/mysql
	bin/mysqld_safe
	scripts/mysql.server
	bin/mysqldump
	bin/mysqladmin
	supports-file/mysql_install_db

3、清理数据库及不需要的用户

drop database test;
drop user root@::1;
drop user root@db;
drop user ‘‘@db;
drop user ‘‘@localhost;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
mysql> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

4、安装遇到的报错

问题1:

ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data/db.pid).

 解决:

chown -R mysql.mysql /application/mysql-5.6.36/

问题2:

 

数据库启动会提示,找不到/application/tmp/mysql.sock,原因是5.6.36版本不会自动创建tmp目录

 

解决:

mkdir /application/mysql/tmp

其它常见问题

	①权限.chown -R mysql.mysql
	②killall mysqld
	③重新初始化数据.
	④运行1年了,出问题(非法(断电)关机或者非法关数据库,例如kill -9)

四、MySQL基础命令使用

命令

说明

show databases;

查询显示所有的数据库信息

create database oldboy;

创建新的数据库

drop database oldboy;

删除存在的数据库

use mysql;

表示选择使用一个数据库,相当于cd进入一个数据库

show tables;

查看数据库中表信息

select database();

表示查看当前所在数据库,类似于pwd命令的功能

select user();

查看当前登录数据库的用户,类似于whoami命令

select * from user\G;

查看user表中所有信息,并且纵行显示

select user,host from user;

查看user表中指定信息,并且横行显示

select user,host from mysql.user;

查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库

drop user ‘user‘@‘host‘;

删除用户

flush privileges;

刷新权限

grant all on .* to [email protected]‘host‘ identified by ‘oldboy123‘;

创建用户

grant all on .* to [email protected]‘localhost‘ identified by ‘oldboy123‘;

创建用户(用户名包含大写字母)

mysqladmin -u root password ‘123456‘;

为用户设置密码

mysqladmin -uroot -p123456 password 654321

修改密码,在知道旧密码的前提下

delete from mysql.user where user="root" and host="Mysql";

遇主机名大写,特殊字符使用drop无法删除

 


以上是关于linux运维架构之路-MySQL的主要内容,如果未能解决你的问题,请参考以下文章

linux运维架构之路-MySQL主从复制

linux运维架构之路-Docker快速入门

linux运维架构之路-Lnmp架构部署

linux运维架构之路-Docker架构原理

linux运维架构之路-linux基础优化

linux运维架构之路-Nginx提高