Linux:MySQL(一)RPM安装和配置文件路径

MySQL历史:

1979年:TcX公司 Monty Widenius,Unireg
1996年:发布MySQL1.0,Solaris版本,Linux版本
1999年:MySQL AB公司,瑞典
2003年:MySQL 5.0版本,提供视图、存储过程等功能
2008年:Sun 收购
2009年:Oracle收购sun
2009年:Monty成立MariaDB

Monty以两个女儿名字命名
大女儿My 小女儿Maria

MySQL和MariaDB:

一、官方网址:
https://www.mysql.com/
http://mariadb.org/

二、官方文档:
https://dev.mysql.com/doc/
https://mariadb.com/kb/en/

三、版本演变:

MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 -->8.0
MariaDB:5.5 -->10.0--> 10.1 --> 10.2 --> 10.3

四、去IOE(IBM的小型机、Oracle数据库、EMC存储设备)

yum info mariadb-server 可查版本Centos7用的Maria5.5

MYSQL的特性

插件式存储引擎:也称为“表类型”,存储管理器有多种实现版本,功能和特性可能均略有差别;

用户可根据需要灵活选择(Mysql5.5.5开始,innoDB是MYSQL默认引擎)

MyISAM ==> Aria

InnoDB ==> XtraDB

单进程,多线程

诸多扩展和新特性

提供了较多测试组件

开源产品

安装MySQL Mariadb

安装方式:

一、源代码:编译安装

二、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用

三、程序包管理器管理的程序包

CentOS 安装光盘

项目官方:https://downloads.mariadb.org/mariadb/repositories/

国内镜像:https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-x.y.z/yum/centos/7/x86_64/

epel源安装

[root@dushan ~]#vim/etc/yum.repo.d/base.repo
# MariaDB 10.3 CentOS repository list - created 2019-01-06 16:28 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

[root@dushan ~]# yum install MariaDB-server MariaDB-client

[root@dushan ~]#systemctl start mariadb 启动mariadb

[root@dushan ~]#ss -ntlp   可以看到生成mysql进程
State      Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
LISTEN     0      50                  *:3306                            *:*                   users:(("mysqld",pid=5294,fd=14)  

[root@dushan ~]#ps aux   可以看到mysql进程是mysql用户生成的
mysql      5131  0.0  0.1 113304  1596 ?        Ss   00:04   0:00 /bin/sh /usr/bin/mysqld_safe
mysql      5294  0.1  7.8 903340 84460 ?        Sl   00:04   0:00 /usr/libexec/mysqld --basedi

[root@dushan ~]#getent passwd mysql  自动生成的mysql用户
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin

[root@dushan ~]#ls -ld /var/lib/mysql  查看mysql家目录权限
drwxr-xr-x 5 mysql mysql 177 Jan  7 00:04 /var/lib/mysql

[root@dushan ~]#ll /var/lib/mysql/   数据存放路径
total 28700
-rw-rw---- 1 mysql mysql    16384 Jan  7 00:04 aria_log.00000001
-rw-rw---- 1 mysql mysql       52 Jan  7 00:04 aria_log_control
-rw-rw---- 1 mysql mysql 18874368 Jan  7 00:04 ibdata1
-rw-rw---- 1 mysql mysql  5242880 Jan  7 00:04 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Jan  7 00:04 ib_logfile1
drwx------ 2 mysql mysql     4096 Jan  7 00:04 mysql
srwxrwxrwx 1 mysql mysql        0 Jan  7 00:04 mysql.sock  本地进程服务端客户端都在本机,走socket文件,不需再走TCP协议的封装解封装,本地应用程序通讯时用
drwx------ 2 mysql mysql     4096 Jan  7 00:04 performance_schema
drwx------ 2 mysql mysql        6 Jan  7 00:04 test

[root@dushan ~]#pstree -p  可看是一进程多线程

提高安全性:mysql_secure_installation

设置数据库管理员root口令
删除anonymous用户帐号
禁止root远程登录
删除test数据库
权限立即生效

清空root密码

mysql>set password for root@localhost=password('');

MariaDB程序

一、客户端程序:

mysql: 交互式的CLI工具

mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成insert等写操作语句保存文本文件中

mysqladmin:基于mysql协议管理mysqld

mysqlimport:数据导入工具

MyISAM存储引擎的管理工具:
myisamchk:检查MyISAM库
myisampack:打包MyISAM表,只读

二、服务器端程序:

mysqld_safe 主进程
mysqld 线程
mysqld_multi  多实例(运行多次,生产用一般不用多实例)
	示例:mysqld_multi --example

用户账号:

账号组成:用户名@主机

dushan@'192.168.32.7'
replication@'localhost'

支持使用通配符:
% 匹配任意长度的任意字符
dushan@'172.16.%.%'
_ 匹配任意单个字符(类似通配符于?用法,表示一个字符)

create user dushan@'192.168.%.%' identified by 'centos';

MySQL使用模式:

一、交互式模式:可运行命令有两类

1.客户端命令:
  每个命令都完整形式和简写格式
  \h,   help    客户端帮助
  \s,  status  数据库版本信息(字符集等信息)
  \u    use     相当于cd命令
	\!,  system  支持shell命令,执行的是本地端命令(SQL-Server是exec,执行的是远程端命令)

mysql>help
mysql>use mysql(use mysql进入mysql库)
mysql>\s

2.服务器端命令:
  通过mysql协议发往服务器执行并取回结果
  SQL语句,每个命令末尾都必须使用命令结束符号,默认为分号	
  
mysql>select user();查看当前用户
mysql>SELECT User,Host,Password FROM user; 查看用户名对应主机
mysql>SELECT VERSION();

二、脚本模式:

mysql –uUSERNAME -pPASSWORD < /path/somefile.sql
或
mysql> source /path/somefile.sql
(进入后用source,与linux命令相似,对后缀没有要求,一般都用.sql)

MySQL客户端选项:(登录时选项)

-A, --no-auto-rehash 禁止补全
-u, --user= 用户名,默认为root
-h, --host= 服务器主机,默认为localhost
-p, --passowrd= 用户密码,建议使用-p,默认为空密码
-P, --port= 服务器端口 (MySQL:3306 oracle:1521 SQL_Server:1433,Windows远程桌面3389:mstsc)
-S, --socket= 指定连接socket文件路径
-D, --database= 指定默认数据库  mysql -uroot -pdushan -d mysql
-C, --compress 启用压缩
-e “SQL“ 执行SQL命令   mysql -uroot -pdushan -e "status"
-V, --version 显示版本
-v --verbose 显示详细信息
--print-defaults 获取程序默认使用的配置  mysql --print-defaults

修改登录提示符:(生产和测试可改成不一样)

一、可登录时写:

mysql --prompt="(\u@\h \v) [\d]> " -uroot -pdushan

二、可写到etc自定义文件:

vim /etc/profile.d/mysql.sh
export MYSQL_PS1="(\u@\h \v) [\d]> "

三、可写到mysql配置文件中(优先生效)

rpm -ql mariadb   查看配置文件在哪
cd /etc/my.cnf.d  进入文件夹根据man帮助找到mysql语句块文件(man mysql  查 /prompt)
vim mysql-clients.cnf
[mysql]
prompt="\\r:\\m:\\s> "   添加到mysql语句块下面
cat /etc/my.cnf 
# include all files from the config directory
!includedir /etc/my.cnf.d
可知只要在my.cnf文件夹中有配置文件语句块即可,文件叫什么名字无所谓

socket地址:

服务器监听的两种socket地址:

ip socket: 监听在tcp的3306端口,支持远程通信
unix sock: 监听在sock文件上,仅支持本机通信

如:/var/lib/mysql/mysql.sock
删除后无法连接,重新启动后自动生成

host为localhost,127.0.0.1时自动使用unix sock

查看设置及进程编号:

1.启动mysql后可查看mysqld的设置
[root@dushan17 ~]#ps aux|grep mysqld
mysql      9113  0.0  0.1 113304  1600 ?        Ss   01:30   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql      9275  0.0  7.6 903340 81848 ?        Sl   01:30   0:03 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root      10877  0.0  0.0 112708   972 pts/0    S+   03:17   0:00 grep --color=auto mysqld

2.查看进程编号
[root@dushan17 ~]#cat /var/run/mariadb/mariadb.pid 
9275

配置文件

vim /etc/my.cnf
[mysqld]  是服务端(parameter参数 = value值) 
bin_log=1
skip_name_resolve=1
innodb_file_per_table=1

_和- 相同
1,ON,TRUE意义相同 
0,OFF,FALSE意义相同

后面覆盖前面的配置文件,顺序如下:
/etc/my.cnf                 Global选项(大部分更改这个文件)
/etc/mysql/my.cnf           Global选项
SYSCONFDIR/my.cnf           Global选项
$MYSQL_HOME/my.cnf          Server-specific选项
--defaults-extra-file=path
~/.my.cnf                   User-specific选项      用户家目录里

维护时添加使用!

侦听3306/tcp端口可以在绑定有一个或全部接口IP上

vim /etc/my.cnf
[mysqld]
skip-networking=1

你可能感兴趣的:(Linux服务,MySQL)