关键词:mysql安装,二进制安装,基于centos6.5,mysql5.7.xhtml
Linux平台下二进制方式安装卸载mysqlnode
本章节:二进制安装mysqlmysql
相关参考资源:https://www.jianshu.com/p/0d628b2f7476linux
官方安装文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.htmlsql
目录:5.7.6以后版本shell
一、基于Linux平台的Mysql项目场景介绍数据库
二、mysql数据库运行环境准备-最优配置centos
三、如何下载mysql数据库bash
四、linux平台下二进制文件方式安装mysql架构
4.一、环境检查(libaio包、卸载现有数据库,检查删除现有数据库 rpm -qa |grep mysql,-e参数为删除)
4.二、安装过程
(1)下载文件、上传安装程序
(2)建立用户,组,建立目录
(3)解压安装程序包 (tar -zxvf file)
(4)修改权限(受权用户对解压目录的权限)
(5)配置环境变量(以即可以直接运行mysql命令,vi ~/.bash_profile)
(6)准备参数配置文件 (my.cnf)
若是一个机器上有安装多个mysql版本,能够在配置文件中[mysql-5.7] 这样,来指定版本的配置参数。
(7)开始初始化Mysql (mysqld --defaults-file=/mysql/data/3306/my.cnf --initialize --user=mysql --basedir=/mysql/app/mysql --datadir=/mysql/data/3306/data)
若是是mysql5.6则是(mysql/bin目录下的,./scripts/mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/)
自带有配置文件模板:mysql/bin/support-files/my-default.cnf
(8)配置启动脚本 (/mysql/app/mysql/support-files/mysql.server)
(9)启停验证,日志查看
【1】使用服务启动与中止mysql(适合单实例,拷贝(8)中修改好的mysql.server文件到 /etc/init.d/ 目录下,生成服务)
【2】设置mysql服务自启
【3】重启验证
【4】使用文件启动与中止mysql(能够适用于单实例、多实例)
【5】修改配置文件,解决密码过时问题(比较危险,设置了以后连密码都不要,跳过权限表)
【6】登录测试
(10)后期配置(密码修改,启动远程访问)
【1】解决密码过时问题的两种方式(配置文件skip-grant-tables,mysql.user表password_expired字段设置)
【2】修改密码(参考:修改密码的四种方式)
【3】启用远程链接的2种方式(修改root的host为%,从新受权新建root@%)
(11)远程链接测试
(12)删除二进制安装的mysql(中止服务,删除相关数据文件便可)
【本文5.7.24自动化安装shell脚本】(不可重复跑)
【相关5.7安装参考笔记】
五、Linux平台下经过源码方式安装mysql
六、Linux平台下经过yum方式安装mysql
七、Linux平台下经过RPM方式安装mysql
八、mysql安装后的配置与运行参数设置
九、mysql安装后的测试与远程链接
十、mysql基本管理命令
十一、Linux平台如何卸载mysql版本
思路:
4.一、环境检查
检查,libaio(异步包要装好),没装的话直接挂载光驱里的操做系统iso文件,作yum源安装(详情见:(0.2.1)mysql数据库环境-操做系统配置 2.4Yum源配置)
#不一样版本安装的时候可能会缺乏libaio.so.1文件 使用 wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm 能够安装缺乏的文件
--删除系统自带的mysql
rpm -qa|grep mysql #检查是否有
rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 #用这个方式以此删除全部的,若有依赖报错可能须要先删除另一个
若是这种报错就使用 --nodeps参数,或者直接 yum remove mysql*
4.二、安装过程
(1)下载文件、上传安装程序 mkdir -p /mysql/app 使用CRT上传、XSHELL等工具上传到该目录,这里只作了CRT连接,其余工具具体能够百度。 (2)建立用户,组,建立目录 groupadd mysql useradd mysql -r -g mysql -s /sbin/false mkdir -p /mysql/data/3306/data mkdir -p /mysql/log/3306 useradd -r:添加系统用户 -g:指定分组 -s:指定登陆的shell,这里操做是不让它登陆OS
(3)解压安装程序包
cd /mysql/app
tar -zxvf 安装包名(好比我这里以下)
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压后如图
为了保护原有文件名好识别版本等信息,再作个软连接,
ln -s mysql-5.7.24-linux-glibc2.12-x86_64 mysql,软连接以下 mysql->mysql-5.7.24…………
--进入解压出来的文件,查看mysql二进制包目录信息
cd /mysql #经过软连接进入
【README】:读这个文件了解Mysql状况 【share】:放一些错误的信息,好比数据字典和SQL的安装
【support-files】:mysql的支持文件
(4)修改权限(受权用户对解压目录的权限)
chown -R mysql:mysql /mysql #把Mysql目录的拥有者设置为mysql用户 -R 为递归,表示/mysql即mysql下全部文件/文件夹均生效
(5)配置环境变量(以即可以直接运行mysql命令)
vi ~/.bash_profile
在PATH后面加上 ':' 再加上mysql/bin目录的绝对路径便可
配置完后,记得source ~/.bash_profile ,这样才能立马生效
PS小建议:
#全局环境变量:也可使用该句:echo "export PATH=/mysql/app/mysql/bin:$PATH">>/etc/profile ,
#这样能够避免安装了多个Mysql版本而使用的mysql/mysqld/mysqldump等等bin目录下的命令是用的其余版本的)
(6)准备参数配置文件
【1】查看参数配置文件访问启动路径
mysql --help |grep my.cnf
参数文件默认读取顺序:【1】/etc/my.cnf 【2】/etc/mysql/my.cnf 【3】/usr/local/mysql/my.cnf 【4】~/.my.cnf
#如下参考命令能够在启动时指定配置文件/参数文件的路径
mysqld_safe --default-file=/mysql/data/3306/my.cnf &
【2】参数文件配置:【my.cnf简单配置参考文章1】【详细配置参考:很是全面的配置与思考,详细配置与思考】


[client] port = 3306 socket = /mysql/data/3306/mysql.sock default-character-set=utf8 [mysql] disable-auto-rehash #容许经过TAB键提示 default-character-set = utf8 connect-timeout = 10 [mysqld] server-id = 3306 port = 3306 user = mysql socket = /mysql/data/3306/mysql.sock pid-file = /mysql/data/3306/mysql.pid basedir = /mysql/app/mysql/ datadir = /mysql/data/3306/data #bind_address = 10.10.10.11 autocommit = 0 character-set-server=utf8 explicit_defaults_for_timestamp=true lower_case_table_names=1 back_log=103 max_connections=10000 max_connect_errors=100000 table_open_cache=512 external-locking=FALSE max_allowed_packet=32M sort_buffer_size=2M join_buffer_size=2M thread_cache_size=51 query_cache_size=32M #query_cache_limit=4M transaction_isolation=READ-COMMITTED tmp_table_size=96M max_heap_table_size=96M ###***logs long_query_time = 10 slow_query_log = 1 slow_query_log_file=/mysql/log/3306/slow.log #log-warnings = 1 log_error_verbosity=3 log-error = /mysql/log/3306/mysql.err log_output = FILE #参数log_output指定了慢查询输出的格式,默认为FILE,你能够将它设为TABLE,而后就能够查询mysql架构下的slow_log表了 #log-queries-not-using-indexes #log-slow-slave-statements #general_log = 0 #general_log_file = /mysql/log/3306/mysql.log #max_binlog_size = 1G #max_relay_log_size = 1G ## replication #log-bin=mysql-bin #server-id=1 #binlog_format= ROW #gtid_mode = on #enforce_gtid_consistency = 1 #log_slave_updates = 1 #master-info-repository=TABLE #relay-log-info-repository=TABLE # innodbstorageengineparameters innodb_buffer_pool_size=1G innodb_data_file_path=ibdata1:1G:autoextend:max:5G #redo innodb_temp_data_file_path = ibtemp1:200M:autoextend:max:10G #innodb_file_io_threads=4 #默认的是4 innodb_log_buffer_size=16M innodb_log_file_size=256M #undo innodb_log_files_in_group=2 innodb_lock_wait_timeout=50 innodb_file_per_table=1 #独立表空间
5.6中,须要把auto_commit 参数先注释掉,才能安心初始化。初始化安装完成后,能够把该参数再加上。
在/mysql/data/3306/ 下新建my.cnf文件,而后把上述代码复制进文件
【3】而后要从新受权,由于当前登陆是root帐户,新文件属于root
#建立文件 vi /mysql/data/3306/my.cnf #张贴代码 #建立错误日志文件(不建立可能起不来) touch /mysql/data/3306/mysql.err #受权 chown -R mysql:mysql /mysql/log/3306/
(7)开始初始化Mysql
mysqld --defaults-file=/mysql/data/3306/my.cnf --initialize --user=mysql --basedir=/mysql/app/mysql --datadir=/mysql/data/3306/data
#若是是mysql5.6则是(mysql/bin目录下的,./scripts/mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/) #自带有配置文件模板:mysql/bin/support-files/my-default.cnf
#其余相关信息安装方面一致
############ 这一步能够省略 开始 ########################
(8)配置启动脚本(把数据库配置成服务以即可以使用 service mysql start 启动)
【1】查看启动路径,mysql --help |grep my.cnf
【2】修改源码文件 /mysql/app/support-script/mysql.server
1) cp mysql.server mysql
2) vi mysql(这一步能够省略)
对照修改查看。
把引用参数文件的路径由【1】中的默认路径更改成自定义路径。即在下图加上--defaults-file=/mysql/data/3306/my.cnf (即自定义的参数文件路径)
######################这一步能够胜率 结束 ##################################
(9)启停验证,日志查看
【1】使用服务启动与中止mysql(适合单实例)
拷贝修改的名为 mysql 的文件到 etc/init.d 目录下下去(这个目录里面包含了一系列系统里面服务的开启和中止的脚本,而且文件名即服务名)
cp mysql.server mysql
cp mysql /etc/init.d
ln -s /mysql/data/3306/my.cnf /etc/my.cnf #作软链接,以即可以把mysql当作linux系统服务启动
设置好后,
启动命令:service mysql start (若是是centos7以上则是,systemctl start mysql.service)
关闭命令:service mysql stop (若是是centos7以上则是,systemctl stop mysql.service)
本文是centos6.5,操做以下:
【2】设置mysql服务自启
若是是关闭的就能够设置以下代码增长自启(详细参考:linux服务管理与启停)
chkconfig --level 2345 mysql on
【3】重启验证
ps -ef |grep mysql
【4】使用文件启动与中止mysql(能够适用于单实例、多实例)
新建一个文件,用mysql_safe的方式启动mysql实例(语句能够从上面的ps -ef |grep mysql 中获取)
用sqladmin关闭,sqladmin -uroot -p shutdown,发现失败了,说sock文件不存在!
那么这里,咱们发现ps -ef| grep mysql 这上面显示了sock文件在哪里,咱们用-S参数加上。而后用mysqladmin 关闭,这里使用的是系统初始化后的默认密码;
sock文件说不存在与/tmp/mysql.sock,能够直接软链接 ln -s /mysql/data/3306/mysql.sock /tmp/mysql.sock
这里提示咱们密码过时了,要咱们修改才行。
【5】修改配置文件,解决密码过时问题(比较危险,设置了以后连密码都不要,跳过权限表)
[mysqld]下面增长一行
skip-grant-tables
【6】登录测试
1)直接使用mysql登录,发现又要管sock(密码再错误日志中)
2)解决每次都要使用 -S /sock目录 参数
把咱们的sock文件,作一个软连接到 /tmp 目录下去
ln -s /mysql/data/3306/mysql.sock /tmp
成功
(10)后期配置(密码修改,启动远程访问)
【1】解决密码过时问题的两种方式(配置文件,mysql.user表password_expired字段设置)
1)修改my.cnf配置文件:[mysqld]下面增长一行skip-grant-tables (比较危险,设置了以后连密码都不要,跳过权限表)
2)mysql.user表password_expired字段设置为N
【2】修改密码(参考:修改密码的四种方式)
1)set password = password('123456'); flush privileges;
2)mysqladmin -u用户名 -p旧密码 password 新密码
3)update mysql.user set password=password('123') where user='root' and host='localhost';
【3】启用远程链接的2种方式(修改root的host为%,从新受权新建root@%)
1)在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改成'%'。
select host,user from mysql.user where user='root';
update mysql.user set host = '%' where user ='root'; flush privileges;
2)受权新建一个主机为%的root帐户
grant all privileges on *.* to 'root'@'%' identified by '123456' with option; flush privileges;
(11)远程链接测试
(12)删除二进制安装的mysql(参考:https://www.cnblogs.com/kerrycode/p/4364465.html)
1)中止服务
2)删除全部相关目录便可
本文须要清理的就是
/mysql/data/
/mysql/log/
/mysql/app/
/etc/init.d/mysql
【本文5.7.24自动化安装shell脚本】(不可重复跑)
前提:
(1)把mysql二进制安装文件放在 根目录(/)
(1)把mysql 配置文件my.cnf放在 根目录(/)
#!/bin/bash #the mysql install file in path: /mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz echo 'begin check mysql exist......' |tee -a 1.txt flag=`rpm -qa|grep mysql -c` mysql_name=`rpm -qa|grep mysql` if [ ${flag} -ne 0 ];then echo -n 'begin delete old mysqlinfo......'|tee -a 1.txt rpm -e --nodeps ${mysql_name} 2>>1.txt if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi fi echo -n 'begin add group mysql......'|tee -a 1.txt groupadd mysql if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'begin add user mysql......'|tee -a 1.txt useradd mysql -r -g mysql -s /bin/false if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'begin mkdir mysql dir......'|tee -a 1.txt mkdir -p /mysql/app mkdir -p /mysql/data/3306 mkdir -p /mysql/log/3306 if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'cp /mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz to /mysql/app......'|tee -a 1.txt cp /mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz /mysql/app/ if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'cp /mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz to /mysql/app......'|tee -a 1.txt cp /mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz /mysql/app/ if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'uncompression mysql install file......'|tee -a 1.txt cd /mysql/app tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'create ln -s mysql_install_dir to mysql......'|tee -a 1.txt ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'configure the $path......'|tee -a 1.txt echo 'export PATH=/mysql/app/mysql/bin:$PATH'>>/etc/profile if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi source /etc/profile echo -n 'cp /my.cnf to /etc/my.cnf......'|tee -a 1.txt cp /my.cnf /etc/my.cnf if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'mysqld --initialize --user=mysql......'|tee -a 1.txt mysqld --initialize --user=mysql if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'cp my.server file to /etc/init.d/mysql......'|tee -a 1.txt cp /mysql/app/support-script/mysql.server /etc/init.d/mysql if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'chkconfig mysql on......'|tee -a 1.txt chkconfig mysql on if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi echo -n 'start mysql service ......'|tee -a 1.txt flag=`service mysql status |grep SUCCESS -c` if [ ${flag} -ne 0 ];then echo -n 'ok'|tee -a 1.txt else service mysql start if [ $? -eq 0 ];then echo 'OK'|tee -a 1.txt else echo 'Failed'|tee -a 1.txt exit fi fi
【相关5.7安装参考笔记】
#!/bin/sh #创建用户组 groupadd mysql #创建用户 useradd -r -g mysql mysql #切换到解压路径,解压二进制mysql包 cd /usr/local if [ -d mysql-5.7.9-linux-glibc2.5-x86_64 ]; then echo "mysql folder is exists" else tar -xzvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz fi #作软连接起名为mysql ln -s mysql-5.7.9-linux-glibc2.5-x86_64 mysql #切换到mysql(mysql二进制安装文件 解压出来的软链接目录)目录下 cd mysql #添加环境变量 echo "export PATH=/usr/local/mysql/bin:$PATH">>/etc/profile #从新引用环境变量以便即时生效 source /etc/profile #关防火墙 service iptables stop chkconfig iptables off #构造mysql自定义目录 if [ -d mysql-files ]; then echo "mysql-files is exists" else mkdir mysql-files fi chmod 770 mysql-files chown -R mysql . chgrp -R mysql . if [ -d data ]; then mv data data_$(date+%Y%m%d) else echo "data is not exist" fi #初始化mysql,根据默认配置文件/etc/my.cnf or /etc/mysql/my.cnf or ./my.cnf ./bin/mysqld --initialize --user=mysql #修改全部者权限 chown -R root . chown -R mysql data mysql-files #启动mysql ./bin/mysqld_safe --user=mysql & #复制mysql.server文件以便成为服务 cp -rf support-files/mysql.server /etc/init.d/mysql.server #./usr/local/mysql/support-files/mysql.server stop ps -ef|grep mysql|grep -v grep |awk -F' ' '{print $2}'|xargs kill -s 9 #serivce mysql stop ./bin/mysqld_safe --skip-grant-tables & #service mysql start #./usr/local/mysql/support-files/mysql.server start mysql -uroot -p use mysql; update mysql.user set authentication_string=password('123456') where user='root'; flush privileges; quit; mysql -uroot -p123456 set password for 'root'@'localhost'=password("123456"); flush privileges;
15.安装完成后的优化(删除多余数据库与帐户)
15.一、查看数据库的版本信息
1
2
3
4
5
6
7
|
MariaDB [(none)]>
select
version();
+----------------+
| version() |
+----------------+
| 5.5.52-MariaDB |
+----------------+
1 row
in
set
(0.18 sec)
|
15.二、删除多余的帐号(除root和localhost的)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
MariaDB [(none)]> use mysql
MariaDB [mysql]>
select
user,host from mysql.user;
+------+------------------------+
| user | host |
+------+------------------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | lvs-dr01.saltstack.com |
| root | lvs-dr01.saltstack.com |
+------+------------------------+
6 rows
in
set
(0.03 sec)
MariaDB [mysql]> delete from mysql.user where (user,host) not
in
(
select
'root'
,
'localhost'
);
Query OK, 5 rows affected (0.05 sec)
MariaDB [mysql]>
select
user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
+------+-----------+
1 row
in
set
(0.05 sec)
|
15.三、修改mysql默认的mysql管理帐号
修改默认的mysql管理帐号(root改成mysql,并设置新密码为redhat12345)
1
2
3
4
5
6
7
8
9
|
MariaDB [mysql]> update user
set
user=
"admin"
where user=
"root"
;
MariaDB [mysql]> update mysql.user
set
user=
'admin'
,password=password(
'redhat12345'
);
Query OK, 1 row affected (0.08 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.03 sec)
[root@LVS-DR01 ~]
# mysql -uadmin -p'redhat12345'
MariaDB [(none)]> user mysql;
MariaDB [mysql]> show tables;
|
继续查询:
1
2
3
4
5
6
7
|
MariaDB [mysql]>
select
user,host from mysql.user;
+-------+-----------+
| user | host |
+-------+-----------+
| admin | localhost |
+-------+-----------+
1 row
in
set
(0.00 sec)
|
15.四、删除test数据库
为何要删?新建MySQL数据库后,默认建立的test数据库权限比较怪异,全部可链接的用户都可以拥有权限访问该库
1
2
3
4
5
6
7
8
9
10
11
|
MariaDB [mysql]> drop database
test
;
MariaDB [mysql]> flush privileges;
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows
in
set
(0.06 sec)
|
15.五、优化权限字典表mysql.db
以下所示:新建MySQL数据库后,默认建立的test数据库权限比较怪异,全部可链接的用户都可以拥有权限访问该库,并操做其中的对象,Host为%,User为空,说明了不受限制,全部能链接到MySQL的用户,所有拥有test及test开头的数据库的几乎全部权限。
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
|
MariaDB [mysql]>
select
* from mysql.db where db like
'test%'
\G
*************************** 1. row ***************************
Host: %
Db:
test
User:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: N
Execute_priv: N
Event_priv: Y
Trigger_priv: Y
*************************** 2. row ***************************
Host: %
Db:
test
\_%
User:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: N
Execute_priv: N
Event_priv: Y
Trigger_priv: Y
2 rows
in
set
(0.31 sec)
优化的操做:
MariaDB [mysql]> truncate table mysql.db;
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql]>
select
* from mysql.db where db like
'test%'
\G
Empty
set
(0.00 sec)
|
15.六、如何优化/root/.mysql_history文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[root@LVS-DR01 ~]
# tail -20 ~/.mysql_history
flush privileges;
select
user,host from mysql.user;
delete from mysql.user where user=
"'molewan1'@'10.10.10.%'"
;
delete from mysql.db where user=
'molewan1'
@
'10.10.10.%'
;
select
user,host from mysql.user;
delete from mysql.user where user=molewan1;
delete from mysql.user where user=
'molewan1@10.10.10.%'
;
flush privileges;
select
user,host from mysql.user;
delete from mysql.user where user=
"molewan1"
and host =
"10.10.10.%"
;
flush privileges;
select
user,host from mysql.user;
delete from mysql.user where user=
"molewan"
and host=
"10.10.10.%"
;
flush privileges;
create user molewan@
'10.10.10.%'
identified by
'molewan'
;
select
user,host from mysql.user;
desc mysql.user;
update mysql.user
set
password=password(
'admin'
) where user=
'admin'
and host=
'localhost'
;
flush privileges;
\q
|
说明:在Linux/Unix系统下,使用mysql命令行工具执行的全部操做,都会被记录到一个名为.mysql_history的文件中,该文件默认保存在当前用户的根目录下
这个设定本来是为了提高mysql命令行操做体验,在mysql中操做命令就能够上下翻动了,但某些状况下缺会形成隐患。
15.七、如何历史记录消除隐患
1
2
3
4
5
6
7
8
|
方法1:基于DB层的操做
修改MYSQL_HISTFILE环境变量,将其值改成
/dev/null
,这样全部的操做都会被输出到空,操做的历史
天然不会被保留。
方法2:基于系统层操做
仍旧保留这个文件,可是改文件实际上未
/dev/null
的软连接,这样全部的操做都会被输出到空,操做的历史天然不会被保留。
ln
-f -s
/dev/null
~/.mysql_history
[root@LVS-DR01 ~]
# tail -20 ~/.mysql_history
这时候就没有输出了
|
到此,安装完成后的基本优化已经完成