hc6538 发表于 2018-9-28 06:46:05

mysql之mysql安装、初始化,以及mysql相关命令的使用

  安装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=FILEmysql启动时指定选项--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来通信的。
  客户端工具:
  都受到配置文件中的设定,而且选项上大体相同。
  mysql
  mysqlimport
  mysqldump备份工具
  mysqladmin 管理工具
  mysqlcheck 检查数据库完整性。
  非客户端组件
  myisamchk 检查myisam表
  myisampack 压缩myisam表
  服务器端工具:
  mysqldmysql服务器端程序
  mysqld_safe安全线程的mysqld服务器程序
  mysqld_mulit 支持多实例的mysqld服务器程序
  mysql客户端工具:
  #mysql
  
  -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 COMMAND ] ...
  
  和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 重置大多数的状态变量

  >  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
  集中式配置文件,可以为多个程序提供配置。
  格式:
  
  xxxx
  
  xxxx
  
  xxxx
  /etc/my.cnf
  
  port =3306
  socket =/tmp/mysql.sock
  thread_concurrency=8 线程并发量,cpu的个数*2
  datadir=/var/lib/mysql 指定数据位置。
  ~/.my.cnf:
  假设mysql只允许本地账户登陆,用户在登陆时不想输入账号密码,可以使用以下方法:
  #vim ~/.my.cnf
  
  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

页: [1]
查看完整版本: mysql之mysql安装、初始化,以及mysql相关命令的使用