MySQL配置和安装
项目官方:https://downloads.mariadb.org/mariadb/repositories/
国内镜像:https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/
https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/
RPM包安装MySQL
CentOS 7 以上版:安装光盘直接提供
mariadb-server 服务器包
mariadb 客户端工具包
CentOS 6:
mysql-server 服务器包
mysql 客户端工具包
启动服务
[root@centos8|~]#systemctl start mariadb-server
初始化脚本提高安全性
运行初始化脚本:mysql_secure_installation
设置数据库管理员root口令
禁止root远程登录
删除anonymous用户帐号
删除test数据库
MySQL 程序
客户端程序
- mysql: 交互式的CLI工具
- mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成
- insert等写操作语句保存文本文件中
- mysqladmin:基于mysql协议管理mysqld
- mysqlimport:数据导入工具
MyISAM存储引擎的管理工具: - myisamchk:检查MyISAM库
- myisampack:打包MyISAM表,只读
服务器端程序
- mysqld_safe
- mysqld
/usr/bin/mysqld_safe - mysqld_multi 多实例 ,示例:mysqld_multi --example
用户账号
mysql用户账号由两部分组成:
‘USERNAME’@'HOST‘
说明:
HOST限制此用户可通过哪些远程主机连接mysql服务器
支持使用通配符:
% 匹配任意长度的任意字符
172.16.0.0/255.255.0.0 或 172.16.%.%
_ 匹配任意单个字符
mysql 命令
mysql使用模式:
- 交互式模式:
可运行命令有两类: - 客户端命令:
h, help
\u,use
\s,status
!,system
服务器端命令:
- SQL语句, 需要语句结束符 “;”
- 脚本模式:
mysql –uUSERNAME -pPASSWORD < /path/somefile.sql
mysql>source /path/from/somefile.sql
mysql命令使用格式
mysql客户端常用选项:
-A, --no-auto-rehash 禁止补全
-u, --user= 用户名,默认为root
-h, --host= 服务器主机,默认为localhost
-p, --passowrd=用户密码,建议使用-p,默认为空密码
-P, --port= 服务器端口
-S, --socket= 指定连接socket文件路径
-D, --database= 指定默认数据库
-C, --compress 启用压缩
-e “SQL“ 执行SQL命令
-V, --version 显示版本
-v --verbose 显示详细信息
--print-defaults 获取程序默认使用的配置
运行mysql命令:默认空密码登录
mysql>use mysql
mysql>select user();查看当前用户
mysql>SELECT User,Host,Password FROM user;
登录系统:mysql –uroot –p
命令分类
客户端命令:本地执行
mysql> help
每个命令都完整形式和简写格式
mysql> status 或 \s
服务端命令:通过mysql协议发往服务器执行并取回结果
每个命令末尾都必须使用命令结束符号,默认为分号
示例:SELECT VERSION();
mysqladmin命令
#查看mysql服务是否正常,如果正常提示
mysqladmin -uroot -p123456 ping
#关闭mysql服务,但mysqladmin命令无法开启
mysqladmin –uroot –p123456 shutdown
#创建数据库testdb
mysqladmin -uroot –p123456 create testdb
#删除数据库testdb
mysqladmin -uroot -p123456 drop testdb
#修改root密码
mysqladmin –uroot –p123456 password ‘magedu’
#日志滚动,生成新文件/var/lib/mysql/mariadb-bin.00000N
mysqladmin -uroot -p123456 flush-logs
服务器端配置
服务器端(mysqld):工作特性有多种配置方式
1、命令行选项:
2、配置文件:类ini格式,集中式的配置,能够为mysql的各应用程序提供配置信息
服务器端配置文件:
/etc/my.cnf #Global选项
/etc/mysql.my.cnf #Global选项
~/.my.cnf #User-specific 选项
配置文件格式:
[mysqld]
[mysqld_safe]
[mysqld_multi]
[mysql]
[mysqldump]
[server]
[client]
格式:parameter = value
说明:_和- 相同
1,ON,TRUE意义相同, 0,OFF,FALSE意义相同
socket地址
服务器监听的两种socket地址:
ip socket: 监听在tcp的3306端口,支持远程通信 ,侦听3306/tcp端口可以在绑定有一个或全部接口IP上
unix sock: 监听在sock文件上,仅支持本机通信
如:/var/lib/mysql/mysql.sock
说明:host为localhost 时自动使用unix sock
关闭mysqld网络连接
只侦听本地客户端, 所有客户端和服务器的交互都通过一个socket文件实现,socket的配置存放在/var/lib/mysql/mysql.sock) 可在/etc/my.cnf修改
范例:
vim /etc/my.cnf
[mysqld]
skip-networking=1 #禁用网络远程用户无法连接
[root@centos8|~]#vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
datadir=/var/lib/mysql #mysql路径
socket=/var/lib/mysql/mysql.sock #socket文件
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
修改命令提示符
#修改mysql提示符
[root@centos8 ~]#vim /etc/my.cnf.d/mysql-clients.cnf
[mysql]
prompt="\\r:\\m:\\s(\\u@\\h) [\\d]>\\_"
[root@centos8 ~]#mysql --print-defaults -v
mysql would have been started with the following arguments:
--prompt=\r:\m:\s(\u@\h) [\d]>\_ -v
通用二进制格式安装过程
下载地址: https://downloads.mysql.com/archives/community/
下载:mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
[root@centos7|~]#yum install -y perl-Data-Dumper libaio
一,准备用户
[root@centos7|~]