mysql之编译安装mysql,以及mysql mysqladmin工具的使用说明。

   mysql的编译安装不是使用./configure 而是使用cmake,这点大家需要注意:

   一:安装好编译环境,三个包组:“Development tools”

                                 “Desktop platform Development”

                                 “Server platform Development”

   二:编译安装MySQL

   1:安装cmake

#yum -y install cmake28

   注意,我们安装的是cmake比较新的版本,cmake28,使用的时候需要使用cmake28而不是cmake.

   3:获取MySQL的源码包并解压

# tar xf mysql-5.5.33.tar.gz
# cd mysql-5.5.33

   4:创建MySQL用户MySQL组

# groupadd -r mysql
# useradd -g mysql -r -d /mydata/data mysql

   5:编译安装:

# cmake28 . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mydata -DSYSCONFDIR=/etc/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8  

  解说一下安装配置:

   1:-DCMAKE_INSTALL_PREFIX=--->安装路径

   2: -DMYSQL_DATADIR=--->数据库目录

   3:DSYSCONFDIR=--->配置文件存放位置

   4:-DWITH_INNOBASE_STORAGE_ENGINE=1--->安装存储引擎INNOBASE

   5:-DWITH_ARCHIVE_STORAGE_ENGINE=1--->安装存储引擎ARCHIVE

   6:-DWITH_BLACKHOLE_STORAGE_ENGINE=1--->安装存储引擎BLACKHOLE

   7:-DWITH_READLINE=1--->客户端的交互工具,可以让我们使用history等高级功能

   8:-DWITH_SSL=system--->编译SSL功能

   9:-DWITH_ZLIB=system--->编译压缩传输功能

   10:-DWITH_LIBWRAP=0--->不使用WRAP管理功能

   11:-DMYSQL_UNIX_ADDR=/tmp/mysql.sock--->Unix sock的位置,

   12:-DDEFAULT_CHARSET=utf8--->默认使用字符集

   13:-DDEFAULT_COLLATION=utf8_general_ci

  OK!接着编译安装

# make && make install

   6:如果我们要使用ssl zlib readline等工具还需要安装他们的devel包

# yum install openssl-devel readline-devel zlib-devel

   三:安装完成MySQL,我们要初始化MySQL

   1:提供配置文件my.cnf,MySQL的配置文件很多:

      /etc/my.cnf

      /etc/mysql/my.cnf

      $MySQL_HOME/My.cnf

      安装时使用了--defaults-extra-file= 指定的路径

      ~/.my.cnf

       读取配置文件次序的命令:

/usr/local/mysql/bin/mysqld --help --verbose

   我们提供的配置文件是/etc/my.cnf

# cd /usr/local/mysql/support-files
# cp my-large.cnf /etc/my.cnf

   2:提供服务脚本

# cp mysql.server /etc/rc.d/init.d/mysqld

# ll /etc/rc.d/init.d/mysqld --->确保有执行权限。

# chkconfig --add mysqld --->加入服务脚本

# chkconfig mysqld on --->开启启动

   3:创建数据库存储路径:/data/mydata 数据库的存储位置最好存放在逻辑卷上,方便我们以后的扩展。

# mkdir /data/mydata -p --->创建目录              

# pvcreate /dev/sda3 --->创建物理卷

# vgcreate mysql /dev/sda3 --->创建

# lvcreate -n mysqldata -L 10G mysql --->创建逻辑卷

# mke2fs -t ext4 /dev/mysql/mysqldata --->格式化

# vim /etc/fstab --->开机自动挂载

/dev/mysql/mysqldata    /data/mydata    ext4    defaults    0 0

   4:因为我们修改了mysql的默认数据库存储路径,所以我们需要在配置文件里告诉它数据存储的位置在哪里。

# vim /etc/my.cnf

  5:修改 /usr/local/mysql/*的属组为mysql

# chown -R .mysql ./*

  6:初始化MySQL:/usr/local/mysql/scripts/mysql_install_db就是初始化MySQL的脚本文件。

# scripts/mysql_install_db --datadir=/data/mydata --user=mysql

    7:我们cd到/usr/local/mysql/bin,ls查看一下:其实在服务器端有3个启动服务的命令,客户端有两个。

  服务器端:mysqld

            mysqld_safe --->默认其实启动的是这一个

            mysqld_multi --->启动多线程是使用这一个

   客户端:mysql

           mysqladmin

   备份工具:mysqldump

  8:导出命令工具到环境变量PATH

# vim /etc/profile.d/mysql.sh

exportPATH=/usr/local/mysql/bin:$PATH

# . /etc/profile.d/mysql.sh

 四:连接上MySQL我们需要做一些简单的安全操作:简单介绍几个MySQL命令,2个通配符

  1:SHOW DATABASES; ---> 显示所有数据库库文件

  2:use db_name; --->默认使用那个数据库

  4:SHOW DATABASES; --->显示默认数据库内的所有表

  5:SET PASSWORD FOR ‘username‘@‘hostname‘ = PASSWORD(‘yourpassword‘) --->给用户设置密码

  6:DESC tb_name --->查看某表的信息。

  7:SELECT col1,col2,...FROM tb_name; --->查询某表的某些字段

  8:CREATE user ‘username‘@‘hostname‘; --->创建某用户,host可以用通配符匹配。

  9:DROP user ‘username‘@‘hostname‘; --->删除某用户

  10:% ---> 任意长度的任意字符

  11:_ ---> 匹配任意单个字符

 

  那我们需要做的操作就是把user表的匿名用户删除,给管理员root添加密码

 

mysql> use mysql

Database changed

mysql> select user,host,password from user;


mysql> drop user ‘‘@‘localhost‘;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ‘‘@‘station65.magelinux.com‘;
Query OK, 0 rows affected (0.00 sec)
mysql> setpassword forroot@localhost = PASSWORD(‘redhat‘);
Query OK, 0 rows affected (0.00 sec)

 

  顺便说下另外两种给用户设置密码的命令

  1:update

mysql> update user set password = PASSWORD(‘centos‘) where user = ‘root‘;

  给所有用户都添加密码了。

  2:mysqladmin

# mysqladmin -uroot -hlocalhost password ‘redhat‘ -p

   我们连入ySQL服务器后,数据库MySQL为默认管理库。内部的user表与客户认证相关,所以我们以上修改密码、删除匿名用户的操作都是在user表中完成。

   五:MySQL的客户端工具:

       1:mysql

       2:mysqladmin

       3:mysqldump

       4:mysqlcheck

       这些工具都有一些通用命令行选项:

       1:-u, --user= 指定用户

       2:-h, --host= 指定主机

       3:-p, --password= 输入登录密码

       4:--protocol={tcp|socket} 指定协议

       5:--port= 指定端口

      还有一些非客户端类的管理工具

       1:myisamchk  打包压缩工具

       2:myisampack 检测工具检测myusam表是否有误

   六:mysql客户端工具的用法:

       mysql的工作模式分:

       1:交互式模式 mysql>

          交互式模式的命令分

              1:客户端命令:

              客户端命令获取帮助信息:mysql> help

                                      mysql> \?

  简单介绍几个常用命令

  1:\c :终止执行当前命令

  2:\q :退出    

  3:\g :不管结束符是什么都将命令提交给服务器,并以表格形式显示

  4:\G :以行的形式显示输出结果

  5:\s :status 状态信息

  6:\. :source 一个mysql脚本

        2:服务器端命令:因为服务器端命令需要提交服务器,所以服务器端命令都跟命令结束符默认为分号(;)

           帮助信息获取:help keyword

           获取有 那些关键字:help contents 关键字的分组信息。


  2:脚本模式:mysql < /path/to/mysql_script.sql

 

     mysql的快捷键:

          Ctrl + w: 删除光标之前的单词

          Ctrl + u: 删除光标之前至命令行首的所有内容

          Ctrl + y: 粘贴使用Ctrl+w或Ctrl+u删除的内容

          Ctrl + a: 移动光标至行首

          Ctrl + e: 移动光标至行尾

     mysql命令行选项:

       1:--compress 压缩传输

       2:--default-character-set=charset_name 发送时默认字符集

       3:-V:mysql的版本

       4:-v:显示详细信息

       5:--ssl-ca=/path/to/ssl_ca_file ca的存放路径

       6:--ssl-capath=/path/to/ca_dir  多个ca的存放目录

       7:--ssl-cert=/path/to/cert_file 自己的证书

       8:--ssl-cipher=cipher_list :号分隔的加密方式

       9:--ssl-key=/path/to/key_file 自己的私钥文件

       10:--ssl-verify-server-cert 验证服务器端证书。

       11:--database,-D 直接指定要使用的默认库。

       12:-H, --html:输出结果为html格式的文档

       13:-X, --xml: 输出格式为xml

       14:--safe-updates: 拒绝使用无where子句的update或delete命令;

    七:客户端工具mysqladmin的使用说明:

        mysqladmin是在本地使用的命令,不是连入mysql以后使用的。

       1:使用格式:mysqladmin [options] command [arg] [command [arg]] ...

          command是mysqladmin的子命令:说一下command 子命令都有哪些

          1:create db_name 指定要创建的数据库

# mysqladmin -uroot -p cerate mydb

# mysql -uroot -p -e ‘show databases;‘

     2:drop DB_NAME  删除数据库

     3:debug: 打开调试日志并记录于error log中

    4:status:显示简要状态信息,还可以跟--sleep、--count 选项


    睡眠1秒,批次显示5次。

   5:extended-status: 输出mysqld的各状态变量及其值,相当于执行“mysql> SHOW GLOBAL STATUS”

   6 variables: 输出mysqld的各服务器变量

   7:flush-hosts: 清空主机相关的缓存:DNS解析缓存,此前因为连接错误次数过多而被拒绝访问mysqld的主机列表。

    注意:这个命令还是比较重要的,希望童鞋们谨记。

   8:flush-logs: 日志滚动,主要是二进制日志和中继日志

   9:refresh: 相当于同时使用flush-logs和flush-hosts

   10:flush-privileges: 重读授权表 功能跟reload 等同。

   11:flush-status: 重置状态变量的值 不是所有,是当前会话,不是全局。

   12:flush-tables: 关闭当前打开的表文件句柄下一步通常是请求锁定这张表。

   13:flush-threads:清空线程缓存池

   14:kill: 杀死指定的线程,指定线程ID,可以一次杀死多个线程,以逗号分隔,但不能有多余空格

   15:password: 修改当前用户的密码

   16:ping :检测MySQL是否在线的一个命令

   17: processlist:显示mysql线程列表

   18:shutdown: 关闭mysqld进程;

   可以看到已经没有监听3306端口。

   19:start-slave

       stop-slave: 启动/关闭从服务器线程

  OK,MySQL的一些简单用法先介绍到这里。请关注下次的博客,有更多内容分享。




mysql之编译安装mysql,以及mysql mysqladmin工具的使用说明。,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。