MySQL数据库多种安装方法介绍(二)

第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为例,我们可以光盘或者网上下载到四个安装包:

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命令:rpm -ivh MySQL-*则可以完成MySQL软件安装任务,剩下的就是如何配置的问题了。

1.1.2 yum方式安装mysql

yum方式安装mysql安装极其简单,只要执行一下命令即可:

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.生产场景的具体命令及参数为:

./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,生产场景的具体命令及参数为:

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 \
提示:编译时可配的选项很多.具休可参考结尾附录或官方文档。
make
make install

如果上述操作未出现错误.则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:

[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:

[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 安装依赖程序

[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编译软件

[root@db02 ~]# yum install -y cmake
[root@db02 ~]# rpm -qa cmake
cmake-2.8.12.2-4.el6.x86_64

2.1.4 添加mysql用户

[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源码安装包 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:

[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:

[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:

[root@db02 ~]# ln -s /usr/local/mysql-5.6.36/ /usr/local/mysql

2.1.7.2 CentOS 7.2:

[root@db01 ~]# ln -s /usr/local/mysql-5.7.20/ /usr/local/mysql

2.1.8 创建sock目录

[root@db02 ~]# mkdir -p /usr/local/mysql/tmp

2.1.9 复制配置文件

2.1.9.1 CentOS 6.9:

[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:

# 手动编写配置文件
[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:

[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:

[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目录权限

[root@db02 ~]# chown -R mysql.mysql /usr/local/mysql/
提示:如果出现问题可以尝试直接给原目录授权。

2.1.12 复制mysql启动文件

[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:

[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:

[root@db01 ~]# echo "/etc/init.d/mysqld start" >> /etc/rc.local
[root@db01 ~]# chmod +x /etc/rc.local

2.1.13.3 设置mysql全局路径

[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

[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使用库的情况:

参数值说明 配置选项 CMak选项
readline库 –with-readline -DWITH_READLINE=1
SSL库 –with-ssl=/usr -DWITH_SSL=system
zlib库 –with-zlib-dir=/usr -DWITH_ZLIB=system
libwrap库 –without-libwrap -DWITH_LIBWRAP=0

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用户

[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

[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

[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

[root@test local]# ln -s /usr/local/mysql-5.6.34/ /usr/local/mysql

2.3.4.2 CentOS 5.7.x

[root@lb02 ~]# ln -s /usr/local/mysql-5.7.18/ /usr/local/mysql

2.3.5 赋予安装目录权限

[root@lb02 ~]# chown -R mysql.mysql /usr/local/mysql

2.3.6 初始化数据库

2.3.6.1 CentOS 5.6.x

[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

[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

[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

[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 编辑配置文件

[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 设置开机自启动

[root@lb02 ~]# chkconfig --add mysqld
[root@lb02 ~]# chkconfig mysqld on

2.3.10 设置全局变量

[root@lb02 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile
[root@lb02 ~]# source /etc/profile

2.3.11 启动服务

[root@lb02 ~]# /etc/init.d/mysqld start

2.4 Yum安装MySQL

2.4.1 添加MySQL源

2.4.1.1 CentOS 6:

[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:

[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

[root@lb02 ~]# yum install -y mysql-server

2.4.3 文件安装明细

[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 更改管理员密码

# 更改管理员密码: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 数据库操作

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 用户操作

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)
温馨提示:本文最后更新于2022-12-20 20:57:53,已超过494天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!
转载请注明本文链接:https://blog.leonshadow.cn/763482/525.html
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享