第1章 MySQL数据库安装介绍
在当今的大中型互联网企业里,MySQL数据库服务几乎都是运行在Linux系列操作系统上,当然,你也可以运行在Windows/Unix等商业操作系统上,大中型互联网企业使用开源领域的产品MySQL数据库目的是,软件代码的开放性和以及无版权免费应用节约成本.因此推荐中小企业采用LAMP/LNMP网站架构。
不同场景不同版本的MySql的安装可以有多种方法。
1.1 yum/rpm方式安装MySQL
MySQL官方网站提供不同版本的RPM安装包,并且针对不同硬件或操作系统平台,又分为不同类型的安装包,大家都可以在官方网站下载页面进行选择,国内也有一些互联网公司提供了镜像,比如网易,阿里云公司提供的镜像资源就非常不错。
注意:yum/rpm方式安装MySQL适合所有MySQL软件产品系列。
1.1.1 rpm包方式安装mysql
rpm包的安装非常简单,以mysql-5.1.40为例,我们可以光盘或者网上下载到四个安装包:
|
1 2 3 4
|
MySQL-client-community-5.1.40-0.rhel5.x86_64.rpm MySQL-devel-community-5.1.40-0.rhel5.x86_64.rpm MySQL-shared-community-5.1.40-0.rhel5.x86_64.rpm MySQL-server一community-5.1.40-0.rhel5.x86_64.rpm
|
其中,我们必须安装MySQL-server*和MySQLclient*软件包,对于另外二个则可视实际需要,但是建议一起安装,为此我们可以把这四个RPM放置于某个目录中,然后执行shell命令:
则可以完成MySQL软件安装任务,剩下的就是如何配置的问题了。
1.1.2 yum方式安装mysql
yum方式安装mysql安装极其简单,只要执行一下命令即可:
|
1
|
yum install mysql-server
|
1.1.2.1 yum/rpm方式安装MySQL应用场景
yum/rpm安装适合对数据库要求不太高的场合,例如并发不大,公司内部,企业内部的一些应用场景,大的门户把源码根据企业的需求制作成rpm,搭建yum仓库,yum install xxx -y。
参考资料:
1.2 常规方式编译安装MySQL
第一条最正宗的产品线5.1及以前:
所谓常规方式编译安装MySQL就是延续早期MySQL的3部曲安装方式,即./configure;make;make install.生产场景的具体命令及参数为:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
./configure \ --prefix=/usr/local/mysql-5.1.72 \ --with-unix-socket-path=/usr/local/mysql-5.1.72/tmp/mysql.sock \ --localstatedir-/usr/local/mysql-5.1.72/data \ --enable-assembler \ --enable-thread-safe-client \ --with-mysqld-user=mysql \ --with-big-tables \ --without-debug \ --with-pthread \ --enable-assembler \ --with-extra-charsets=complex \ --with-readline \ --with-ssl \ --with-embedded-server \ --enable-local-infile \ --with-plugins=partition, innobase \ --with-mysqld-ldflags=-all-static \ --with-client-ldflags=-all-static make make install
|
提示:此种方式适合所有MySQL5.0.xx-5.1.xx产品系列,是最常规的编译方式。
1.3 采用cmake方式编译安装MySQL
由于MySQL5.5.xx-5.6.xx产品系列特殊性,所以编译方式也和早期的产品安装方式不同,采用cmake或gmake方式编译安装。即./configure;make;make install,生产场景的具体命令及参数为:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
tar zxf mysql-5.5.32.tar.gz cd mysql-5.5.32 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysq1-5.5.32 \ -DMYSQL_DATADIR=/usr/local/mysq1-5.5.32/data \ -DMYSQL_UNIX_ADDR=//usr/local/mysq1-5.5.32/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSET=gbk,gb2312,utf8,ascii \ -DENABLED_LOCAL_INFILE=ON \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITHOUT_PRATITION_STORAGE_ENGINE=1 \ -DWITN_FAST_MUTEXES=1 \ -DWITN_ZLIB=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_READLINE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DWITH_DEBUG=1 \
|
提示:编译时可配的选项很多.具休可参考结尾附录或官方文档。
如果上述操作未出现错误.则MySQL5.5.32软件cmake方式的安装就算成功了。
1.4 采用二进制方式免编译安装MySQL
采用二进制方式免编译安装mysql.这种方法和yum/rpm包安装方式类似.适合各类MySQL产品系列,不需要复杂的编译设里及编译时间等待,直接解压下载的软件包,初始化即可完成mysgl的安装启动。
1.5 如何正确选择MySQL的安装方式
yum/rpm安装适合对数据库要求不太高的场合,例如并发不大,公司内部,企业内部的一些应用场景.二进制免安装比较简单方便,适合5.0-5.1和5.5-5.6系列,是很多专业DBA的选择,普通运维人员多采用编译的方式,5.0-5.1系列就是常规编译方式,5.5-5.6系列就是cmake编译方式。
所以综合来讲,这些安装方式都是可以使用的,只是不同层次的人的习惯不同,性能差距不是很大。
建议选择:首先是mysql5.5及以上的版本,安装方式机器数量少的话,推荐cmake编译方式,这是大多数运维人员的选择。数量多的话就用二进制免安装,也是没问题的,这是某些DBA的偏爱。
第2章 安装MySQL
2.1 编译安装MySQL
2.1.1 系统环境
2.1.1.1 CentOS 6.9:
|
1 2 3 4 5 6 7 8 9 10
|
[root@db02 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@db02 ~]# uname -r 2.6.32-696.el6.x86_64 [root@db02 ~]# service iptables status iptables: Firewall is not running. [root@db02 ~]# getenforce Disabled [root@db02 ~]# hostname -I 10.0.0.42 172.16.1.42
|
2.1.1.2 CentOS 7.2:
|
1 2 3 4 5 6 7 8 9 10 11 12
|
[root@db01 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@db01 ~]# uname -r 3.10.0-327.el7.x86_64 [root@db01 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) [root@db01 ~]# getenforce Disabled [root@db01 ~]# hostname -I 10.0.0.10 172.16.1.10
|
2.1.2 安装依赖程序
|
1 2 3 4
|
[root@db02 ~]# yum install -y ncurses-devel libaio-devel [root@db02 ~]# rpm -qa ncurses-devel libaio-devel libaio-devel-0.3.107-10.el6.x86_64 ncurses-devel-5.7-4.20090207.el6.x86_64
|
2.1.3 安装Cmake编译软件
|
1 2 3
|
[root@db02 ~]# yum install -y cmake [root@db02 ~]# rpm -qa cmake cmake-2.8.12.2-4.el6.x86_64
|
2.1.4 添加mysql用户
|
1 2 3
|
[root@db02 ~]# useradd -s /sbin/nologin -M -u800 mysql [root@db02 ~]# id mysql uid=800(mysql) gid=800(mysql) groups=800(mysql)
|
2.1.5 获取MySQL软件包
MySQL软件包下载地址为:
| MySQL软件 |
软件名 |
| MySQL源码安装包 |
mysql-5.7.20.tar.gz |
| MySQL源码安装包(带boost版本) |
mysql-boost-5.7.20.tar.gz |
| MySQL二进制安装包 |
mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz |
说明:MySQL5.7版本开始编译安装的时候需要boost软件支持。
提示:在生产场景中二进制和源码包两种安装方法都是可以使用的,其应用场景一般没什么太大差别,不同之处在于二进制的安装包较大,名字和源码包也有些区别,二进制安装过程比源码更快。
2.1.6 编译安装MySQL
2.1.6.1 CentOS 6.9:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
[root@db02 ~]# cd /server/tools/ [root@db02 tools]# tar xf mysql-5.6.36.tar.gz [root@db02 tools]# cd mysql-5.6.36
# cmake编译安装 [root@db02 mysql-5.6.36]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.36 \ -DMYSQL_DATADIR=/usr/local/mysql-5.6.36/data \ -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.36/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_ZLIB=bundled \ -DWITH_SSL=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_DEBUG=0 [root@db02 mysql-5.6.36]# make && make install
|
2.1.6.2 CentOS 7.2:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
[root@db01 ~]# cd /server/tools/ [root@db01 tools]# tar xf mysql-boost-5.7.20.tar.gz [root@db01 tools]# cd mysql-5.7.20/ [root@db01 mysql-5.7.20]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.20 \ -DMYSQL_DATADIR=/usr/local/mysql-5.7.20/data \ -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.7.20/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_BOOST=/server/tools/mysql-5.7.20/boost \ # 与编译MySQL 5.6.x版本不同之处 -DWITH_ZLIB=bundled \ -DWITH_SSL=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_DEBUG=0 [root@db01 mysql-5.7.20]# make && make install
|
提示:MySQL编译安装时间较长(尤其在CentOS 7上编译安装),请耐心等待。
2.1.7 创建mysql目录软链接
2.1.7.1 CentOS 6.9:
|
1
|
[root@db02 ~]# ln -s /usr/local/mysql-5.6.36/ /usr/local/mysql
|
2.1.7.2 CentOS 7.2:
|
1
|
[root@db01 ~]# ln -s /usr/local/mysql-5.7.20/ /usr/local/mysql
|
2.1.8 创建sock目录
|
1
|
[root@db02 ~]# mkdir -p /usr/local/mysql/tmp
|
2.1.9 复制配置文件
2.1.9.1 CentOS 6.9:
|
1 2
|
[root@db02 ~]# cp /usr/local/mysql/support-files/my*.cnf /etc/my.cnf cp: overwrite `/etc/my.cnf' y
|
2.1.9.2 CentOS 7.2:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
# 手动编写配置文件 [root@db01 ~]# mv /etc/my.cnf{,.bak} [root@db01 ~]# vim /etc/my.cnf [client] port=3306 socket=/usr/local/mysql/tmp/mysql.sock
[mysqld] port=3306 user=mysql socket=/usr/local/mysql/tmp/mysql.sock pid-file=/usr/local/mysql/data/mysql.pid basedir=/usr/local/mysql datadir=/usr/local/mysql/data
|
2.1.10 初始化及配置数据库
2.1.10.1 CentOS 6.9:
|
1 2 3 4 5
|
[root@db02 ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql 2017-11-13 11:54:11 39514 [Note] InnoDB: Shutdown completed; log sequence number 1625977 OK # 安装成功标志 2017-11-13 11:54:13 39536 [Note] InnoDB: Shutdown completed; log sequence number 1625987 OK # 安装成功标志
|
2.1.10.2 CentOS 7.2:
|
1 2
|
[root@db01 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2017-11-13T08:27:06.432840Z 1 [Note] A temporary password is generated for root@localhost: m*znf;srR7:, # 安装成功标志为自动生成root密码
|
2.1.11 设置mysql目录权限
|
1
|
[root@db02 ~]# chown -R mysql.mysql /usr/local/mysql/
|
提示:如果出现问题可以尝试直接给原目录授权。
2.1.12 复制mysql启动文件
|
1 2
|
[root@db02 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@db02 ~]# chmod 700 /etc/init.d/mysqld
|
2.1.13 设置mysql开机自启动
2.1.13.1 CentOS 6.9:
|
1 2 3
|
[root@db02 ~]# chkconfig mysqld on [root@db02 ~]# chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
2.1.13.2 CentOS 7.2:
|
1 2
|
[root@db01 ~]# echo "/etc/init.d/mysqld start" >> /etc/rc.local [root@db01 ~]# chmod +x /etc/rc.local
|
2.1.13.3 设置mysql全局路径
|
1 2 3 4 5 6
|
[root@db02 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile [root@db02 ~]# tail -1 /etc/profile PATH=/usr/local/mysql/bin/:$PATH [root@db02 ~]# source /etc/profile [root@db02 ~]# echo $PATH /usr/local/mysql/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
|
2.1.14 启动mysql
|
1 2 3 4
|
[root@db02 ~]# /etc/init.d/mysqld start Starting MySQL. SUCCESS! [root@db02 ~]# netstat -lntup|grep 330 tcp 0 0 :::3306 :::* LISTEN 39938/mysqld
|
2.2 编译参数详解
2.2.1 安装参数选项
在下表中,“CMAKE_INSTALL_PREFIX”的值表示的是安装根目录,其他参数值的路径都是相对于根目录的,当然也可以直接使用绝对路径,具体如下:
| 参数值说明 |
配置选项 |
CMak选项 |
| 安装根目录 |
--prefix=/usr |
-DCMAKE_INSTALL_PREFIX=/usr |
| mysqld目录 |
--libexecdir=/usr/sbin |
-DINSTALL_SBINDIR=sbin |
| 数据存储目录 |
--localstatedir=/var/lib/mysql |
-DMYSQL_DATADIR=/var/lib/mysql |
| 配置文件(my.cnf)目录 |
--sysconfdir=/etc/mysql |
-DSYSCONFDIR=/etc/mysql |
| 插件目录 |
--with-plugindir=/usr/lib64/mysql/plugin |
-DINSTALL_PLUGINDIR=lib64/mysql/plugin |
| 手册文件目录 |
--mandir=/usr/share/man |
-DINSTALL_MANDIR=share/man |
| 共享数据目录 |
--sharedstatedir=/usr/share/mysql |
-DINSTALL_SHAREDIR=share |
| Library库目录 |
--libdir=/usr/lib64/mysql |
-DINSTALL_LIBDIR=lib64/mysql |
| Header安装目录 |
--includedir=/usr/include/mysql |
-DINSTALL_INCLUDEDIR=include/mysql |
| 信息文档目录 |
--infodir=/usr/share/info |
-DINSTALL_INFODIR=share/info |
2.2.2 存储引擎选项
存储引擎是以插件的形式存在的,所以该选项可以控制插件的构建,比如指定使用某个特定的引擎:
| 参数值说明 |
配置选项 |
CMak选项 |
| 安装根目录 |
--with-plugins=csv,myisam,
myisammrg,heap,innobase,
archive,blackhole
|
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
|
提示:CMake中也可以使用“ON”来替代数字1,它们是等效的。
2.2.3 库文件加载选项
该选项指明Mysql使用库的情况:
2.2.4 其他选项
CMake编译选项支持大部分之前版本的MySQL编译选项,新老编译选项的差别在于:之前的是小写,现在全部变成了大写,之前采用双横线,现在使用单横线,之前使用的破折号,现在取而代之的是使用下划线:
| 参数值说明 |
配置选项 |
CMak选项 |
| TCP/IP端口 |
--with-tcp-port-=3306 |
-DMYSQL_TCP_PORT=3306 |
| UNIX socket文件 |
--with-unix-socket-path=/tmp/mysqld.sock |
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock |
| 启用加载本地数据 |
--enable-local-infile |
-DENABLED_LOCAL_INFILE=1 |
| 扩展字符支持 |
--with-extra-charsets=all(默认:all) |
-DEXTRA_CHARSETS=all(默认:all) |
| 默认字符集 |
--with-charset=utf8 |
-DDEFAULT_CHARSET=utf8 |
| 默认字符校对 |
--with-collation=utf8_general_ci |
-DDEFAULT_COLLATION=utf8_general_ci |
| Build the server |
--with-server |
无 |
| 嵌入式服务器 |
--with-embedded-server |
-DWITH_EMBEDDED_SERVER=1 |
| libmysqld权限控制 |
--with-embedded-privilege-control |
无 |
| 安装文档 |
--without-docs |
无 |
| Big tables支持 |
--with-big-tables, --without-big-tables |
无 |
| mysqld运行用户 |
--with-mysqld-user=mysql |
-DMYSQL_USER=mysql |
| 调试模式 |
--without-debug(默认禁用) |
-DWITH_DEBUG=0(默认禁用) |
| GIS支持 |
--with-geometry |
无 |
| 社区功能 |
--enable-community-features |
无 |
| Profiling |
--disable-profiling(默认启用) |
-DENABLE_PROFILING=0(默认启用) |
| pstack |
--without-pstack |
无(新版移除该功能) |
| 汇编字符串函数 |
--enable-assembler |
无 |
| 构建类型 |
--build=x86_64-pc-linux-gnu |
没有等效参数 |
| 交叉编译主机 |
--host=x86_64-pc-linux-gnu |
没有等效参数 |
| 客户端标志 |
--with-client-ldflags=-lstdc++ |
无 |
| 线程安全标志 |
--enable-thread-safe-client |
无 |
| 注释存储类型 |
--with-comment='string' |
-DWITH_COMMENT='string' |
| Shared/static binaries |
--enable-shared --enable-static |
无 |
| 内存使用控制 |
--with-low-memory |
无 |
2.2.5 CentOS 7完整编译参数
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
2.3 二进制安装MySQL
2.3.1 系统环境
同编译安装。
2.3.2 添加mysql用户
|
1 2 3
|
[root@db02 ~]# useradd -s /sbin/nologin -M -u800 mysql [root@db02 ~]# id mysql uid=800(mysql) gid=800(mysql) groups=800(mysql)
|
2.3.3 解压并移动到程序目录
2.3.3.1 CentOS 5.6.x
|
1 2 3
|
[root@lb02 ~]# cd /server/tools/ [root@lb02 tools]# tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz [root@lb02 tools]# mv mysql-5.6.34-linux-glibc2.5-x86_64 /usr/local/mysql-5.6.34
|
2.3.3.2 CentOS 5.7.x
|
1 2 3
|
[root@lb02 ~]# cd /server/tools/ [root@lb02 tools]# tar xf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz [root@lb02 tools]# mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql-5.7.18
|
2.3.4 创建mysql软链接
2.3.4.1 CentOS 5.6.x
|
1
|
[root@test local]# ln -s /usr/local/mysql-5.6.34/ /usr/local/mysql
|
2.3.4.2 CentOS 5.7.x
|
1
|
[root@lb02 ~]# ln -s /usr/local/mysql-5.7.18/ /usr/local/mysql
|
2.3.5 赋予安装目录权限
|
1
|
[root@lb02 ~]# chown -R mysql.mysql /usr/local/mysql
|
2.3.6 初始化数据库
2.3.6.1 CentOS 5.6.x
|
1 2 3 4 5
|
[root@lb02 ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql 2017-11-13 18:36:03 24774 [Note] InnoDB: Shutdown completed; log sequence number 1625977 OK 2017-11-13 18:36:09 24796 [Note] InnoDB: Shutdown completed; log sequence number 1625987 OK
|
2.3.6.2 CentOS 5.7.x
|
1 2
|
[root@lb02 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2017-11-13T09:52:24.770847Z 1 [Note] A temporary password is generated for root@localhost: <t#ip&*F97+
|
2.3.7 复制启动脚本
2.3.7.1 CentOS 5.6.x
|
1 2
|
[root@lb02 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@lb02 ~]# chmod 700 /etc/init.d/mysqld
|
2.3.7.2 CentOS 5.7.x
|
1 2
|
[root@lb02 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@lb02 ~]# chmod 700 /etc/init.d/mysqld
|
2.3.8 编辑配置文件
|
1 2 3 4 5 6 7 8 9 10 11 12 13
|
[root@db01 ~]# mv /etc/my.cnf{,.bak} [root@db01 ~]# vim /etc/my.cnf [client] port=3306 socket=/tmp/mysql.sock
[mysqld] port=3306 user=mysql socket=/tmp/mysql.sock pid-file=/usr/local/mysql/data/mysql.pid basedir=/usr/local/mysql datadir=/usr/local/mysql/data
|
2.3.9 设置开机自启动
|
1 2
|
[root@lb02 ~]# chkconfig --add mysqld [root@lb02 ~]# chkconfig mysqld on
|
2.3.10 设置全局变量
|
1 2
|
[root@lb02 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile [root@lb02 ~]# source /etc/profile
|
2.3.11 启动服务
|
1
|
[root@lb02 ~]# /etc/init.d/mysqld start
|
2.4 Yum安装MySQL
2.4.1 添加MySQL源
2.4.1.1 CentOS 6:
|
1 2
|
[root@lb02 ~]# wget https://repo.mysql.com//mysql57-community-release-el6-11.noarch.rpm [root@lb02 ~]# rpm -ivh mysql57-community-release-el6-11.noarch.rpm
|
2.4.1.2 CentOS 7:
|
1 2
|
[root@lb02 ~]# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [root@lb02 ~]# rpm -ivh mysql57-community-release-el6-11.noarch.rpm
|
2.4.2 安装MySQL
|
1
|
[root@lb02 ~]# yum install -y mysql-server
|
2.4.3 文件安装明细
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
[root@test ~]# rpm -ql mysql-community-server /etc/init.d/mysqld /etc/logrotate.d/mysql /etc/my.cnf /etc/my.cnf.d /usr/bin/innochecksum /usr/bin/lz4_decompress /usr/bin/my_print_defaults /usr/bin/myisam_ftdump /usr/bin/myisamchk /usr/bin/myisamlog /usr/bin/myisampack /usr/bin/mysql_install_db /usr/bin/mysql_plugin /usr/bin/mysql_secure_installation /usr/bin/mysql_ssl_rsa_setup /usr/bin/mysql_tzinfo_to_sql /usr/bin/mysql_upgrade /usr/bin/mysqld_multi /usr/bin/mysqld_safe /usr/bin/mysqldumpslow /usr/bin/perror /usr/bin/replace /usr/bin/resolve_stack_dump /usr/bin/resolveip /usr/bin/zlib_decompress /usr/sbin/mysqld /var/lib/mysql /var/lib/mysql-files /var/lib/mysql-keyring /var/run/mysqld
|
第3章 MySQL基本使用
3.1 更改管理员密码
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
# 更改管理员密码:mysqladmin -u root -p旧密码 password '新密码' [root@db02 ~]# mysqladmin -uroot password '12345678' # 或 mysqladmin password '12345678' [root@db02 ~]# mysql -uroot -p12345678 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.20 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
|
3.2 数据库操作
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+
4 rows in set (0.02 sec)
mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
Database changed mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+
28 rows in set (0.01 sec)
# 删除不需要的数据库 mysql> drop database test; Query OK, 0 rows affected (0.00 sec)
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+
3 rows in set (0.00 sec)
|
3.3 用户操作
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
mysql> select user,host,password from mysql.user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 | | root | db02 | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | db02 | | +------+-----------+-------------------------------------------+
6 rows in set (0.00 sec)
# 删除不需要不安全的用户 mysql> drop user ''@'db02'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user 'root'@'db02'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user 'root'@'127.0.0.1'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user 'root'@'::1'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user ''@'localhost'; Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 | +------+-----------+-------------------------------------------+
1 row in set (0.00 sec)
|