安装mysql:
1.yum
#wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 从mysql官网上下载mysql的repo
#yum -y install mysql-server
2.二进制源码包
#tar -xf mysql-xxx.tar.bz2
#cd mysql-xxx
#make && make install
3.源码编译安装
参见lamp中mysql的安装。
mysql初始化配置过程:
安装完毕后必须要进行初始化配置。
运行scripts/mysql_install_db脚本,完成初始化。
或者执行mysql_install_db命令完成初始化。
1.找配置文件my.cnf
my.cnf在多个目录中存在,mysql启动是会按照如下次序寻找配置文件,多个配置文件中的选项若有相同,则以最后一个包含该选项的配置文件内容为准。
类unix系统上:
/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf mysql实例目录中,mysql可以运行多个实例,多个文件夹中的mysql只要监听在不同端口上即可。
--defaults-extra-file=FILE mysql启动时指定选项--default-extra-file,手动指定配置文件。
~/.my.cnf 用户家目录下的隐藏文件
win系统上:
%WINDIR%\my.ini,%WINDIR%\my.cnf
c:\my.ini,c:\my.cnf
%INSTALLDIR%\my.ini,%INSTALLDIR%\my,cnf
--defaults-extra-file=DIR mysql启动时指定选项--default-extra-file,手动指定
2.自动生成以下数据库:
mysql
存放数据库账号,权限等等相关信息。
information_schema
mysql运行中产生的运行时数据在内存中的信息。
performance_schema
存放收集到的服务器性能参数。5.5后新增PERFORMANCE_SCHEMA引擎。
初始化后的配置:
1.更改默认账号和密码:
mysql初始化后会生成5个空密码的用户:
3个root账号:
root@127.0.0.1
root@localhost
root@HOSTNAME
2个匿名账号:
“@localhost
”@HOSTNAME
删除匿名用户,给root用户设置密码。
2.启用二进制日志和独立表空间
二进制日志:
服务启动时指定参数--log_bin=mysql-bin和--binlog_format=MIXED
独立表空间:
mysql>set global innodb_file _per_table=1
mysql通信:
mysql是客户端程序,mysqld是服务端程序
若myslql和mysqld在同一个类unix主机上,则二者通信是使用mysql.sock完成进程间通信。
若在同一个win主机上,则通过共享内存或者是管道完成通信。
若不在同一个主机上,则通过tcp/ip通信。注意,即便在同一个主机上,一旦HOST指定为ip地址不是本地,则mysql也是会使用tcp/ip来通信的。
客户端工具:
都受到配置文件中[client]的设定,而且选项上大体相同。
mysql
mysqlimport
mysqldump 备份工具
mysqladmin 管理工具
mysqlcheck 检查数据库完整性。
非客户端组件
myisamchk 检查myisam表
myisampack 压缩myisam表
服务器端工具:
mysqld mysql服务器端程序
mysqld_safe 安全线程的mysqld服务器程序
mysqld_mulit 支持多实例的mysqld服务器程序
mysql客户端工具:
#mysql [OPTION]
[OPTION]
-A --noauto-rehash --disable-auto-rehash 禁用名称补全
-u --user USERNAME 不指定默认为root
-p --password 'PASSWORD' 不指定默认为空
-h HOSTNAME 不指定默认为localhost
--protocol PROTO 指定协议,只有tcp是协议,剩下socket 、memory、pipe其实都是通信机制。默认不指定使用socket。
--port PORT 指定端口。配合--protocol选项使用。不指定端口默认使用socket方式,同时也要看客户端和服务端是否为统一主机。
-D --database DBNAME 设定默认数据库
--compress 压缩所有的客户端和服务器之间的传输数据
--ssl-ca=FILE 指定ca证书文件
--ssl-capath=DIR 若有多个信任ca,则将所有证书放在一个目录中。
--ssl-cert=FILE 指定自己的证书
--ssl-cipher=CIPHER_LIST 指定加密算法列表
--ssl-key=FILE 指定自己的秘钥文件
--ssl-verify-erver-cert 是否验证服务器端证书,默认是off 。
-H --html 以html格式输出表
-X --xml 以xml格式输出表
-e “STATMENT” 执行对应mysql语句
#mysqladmin [OPTION] COMMAND [ARG] [COMMAND[ARG]] ...
[OPTION]
和mysql类似
COMMAND
paasowrd ‘PASSWD’ 设定密码为PASSWD
create DBNAME 创建数据库名为DBNAME
debug 发送相关信息到错误日志
drop DBNAME 删除名为DBNAME的数据库
ping 测试mysql服务器是否在线
processlist 显示正在执行的进程(线程)列表
status 显示mysql服务器的状态
--sleep SEC 指定间隔秒数为SEC
--count NUM 指定显示的总次数
extended-status 显示服务器的状态变量
variables 显示服务器的服务变量
flush-hosts 刷新主机相关的信息。服务器会记录相关信息,会对主机做相应的限制,比方尝试次数太多就禁止登陆,防止攻击。刷新后即可正常登陆。
flush-logs 刷新日志,实现二进制和中继的日志滚动
flush-privileges 让服务器重读授权表
flush-tables 关闭所有打开的表
flush-threads 重置线程池,清除空闲线程
flush-status 重置大多数的状态变量
reload 等同于flush-privileges
reflush 等同于flush-hosts 和flush-logs同时执行
shutdown 关闭mysql服务器进程。
version 显示mysql服务器的版本号及相关信息。
start-slave 启动复制,启动从服务器的复制线程
SQL thread
IO thread
stop-slave 关闭复制,停止从服务器的复制线程
其他客户端工具:
phpMyAdmin
Workbench
MySQL Front
mysql的工作模式:
交互式模式:
mysql>
客户端命令
仅在客户端上执行。
服务器端命令
命令发送到服务器端,服务期执行后将结果返回到客户端。都必须使用语句结束符,默认为分号(;)。
批处理模式(脚本模式):
mysql < FILE.sql 直接载入sql脚本
交互模式下也能载入脚本:
mysql>source|\. FILE.sql
mysql的命令模式:
客户端命令:
clear(\c) 提前终止语句执行
status(\s) 显示状态
delimiter(\d)STRING 设定语句结束符为STRING
connect (\r)重新连接数据库,并显示连接id号和当前默认数据库
ego(\G)忽略语句结束符,直接送到服务器执行,而且结果以竖排方式显示。
go(\g)忽略语句结束符,直接送到服务器执行
quit(\q)退出
source (\.) 执行sql脚本
system(\!)执行shell命令
warnings(\W)语句执行结束后,若有警告信息则显示
nowaring(\w) 语句执行结束后,不显示警告信息
prompt(\R)修改提示符
rehash(\#) 对于新建的对象,启用名称补全功能
服务器语句:
使用语句结束符分号结尾。可以自定义。
help KEYWORD 获取KEYWORD的帮助信息。
交互模式下的提示符:
mysql> 可以输入
-> 语句未结束,可以继续输入
'> 缺少单引号的后一半
"> 缺少双引号的后一半
`> 缺少反引号的后一半
/*> 缺少多行注释的后一半
启动mysql服务
#service mysqld start
或者
#mysqld_safe &
mysql配置文件:
配置文件查找顺序:
/etc/my.cnf -->
/etc/mysql/my.cnf -->
$BASEDIR/my.cnf -->
$BASEDIR为mysql实例的运行目录,一般为安装目录。
$DATEDIR/my.cnf -- >数据目录下。
~/.my.cnf 用户家目录。
最终配置以最后一个为准,后一个配置文件会覆盖前一个配置文件。
查看配置文件可使用的参数和默认值:
#mysqld --help --verbose
my.cnf
集中式配置文件,可以为多个程序提供配置。
格式:
[mysql]
xxxx
[mysqld]
xxxx
[client]
xxxx
/etc/my.cnf
[mysqld]
port =3306
socket =/tmp/mysql.sock
thread_concurrency=8 线程并发量,cpu的个数*2
datadir=/var/lib/mysql 指定数据位置。
~/.my.cnf:
假设mysql只允许本地账户登陆,用户在登陆时不想输入账号密码,可以使用以下方法:
#vim ~/.my.cnf
[client]
user = 'root'
password = 'PASSWD'
host = 'localhost'
注意:此方法会有安全性隐患,谨慎使用。
mysql无法启动的解决方法:
mysql会在数据目录DATADIR中生成一个HOSTNAME.err的错误日至文件。
1.无法启动,也无法找到HOSTNAME.err文件
数据目录DATADIR指向错误,修改配置文件更正目录。
#vim /etc/my.cnf
datadir=DATADIR
2.此前服务未关闭,端口被占用
杀死socket文件的所在的进程释放3306端口。
#ps -aux|grep mysqld
#kill PID
3.数据初始化失败
重新执行初始化脚本
#cd /usr/local/mysql
#scripts/mysql_install_db --user=mysql --datadir=/sqld/mdata
4.数据目录权限问题
#chmod -R mysql:mysql DATADIR
mysql之mysql安装、初始化,以及mysql相关命令的使用
原创文章标签 mysql mysqladmin my.cnf mysqld-safe 文章分类 服务器
-
解读MySQL 8.0数据字典的初始化与启动
MySQL 8.0新设计实现的数据字典,解决了之前版本的数据字典冗余,DDL原子性、crash safe等问题。
数据字典 System MySQL 索引 GaussDB -
mysql 初始化id值 mysql 初始化命令
先去下载https://dev.mysql.com/downloads/mysql/ 解压完是这个样子将这个文件放入到C盘并将文件名字改掉成MySQL配置初始化的my.ini文件的文件解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目录下添加的my.ini(新建文本文件,将文件类型改为.ini),写入基本配置:[mysqld]# 设置3306端口port=3306#
mysql 初始化id值 mysql 初始化 mysql 最大连接数 修改 mysql初始化 mysql初始化失败