(0.2.3)Mysql安装——二进制安装
关键词:mysql安装,二进制安装,基于centos6.5,mysql5.7.x
Linux平台下二进制方式安装卸载mysql
本章节:二进制安装mysql
相关参考资源:https://www.jianshu.com/p/0d628b2f7476
官方安装文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
目录:5.7.6之后版本
1、基于Linux平台的Mysql项目场景介绍
2、mysql数据库运行环境准备-最优配置
3、如何下载mysql数据库
4、linux平台下二进制文件方式安装mysql
4.1、环境检查(libaio包、卸载现有数据库,检查删除现有数据库 rpm -qa |grep mysql,-e参数为删除)
4.2、安装过程
(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安装参考笔记】
5、Linux平台下通过源码方式安装mysql
6、Linux平台下通过yum方式安装mysql
7、Linux平台下通过RPM方式安装mysql
8、mysql安装后的配置与运行参数设置
9、mysql安装后的测试与远程连接
10、mysql基本管理命令
11、Linux平台如何卸载mysql版本
思路:
4.1、环境检查
检查,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.-.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.2、安装过程
()下载文件、上传安装程序 mkdir -p /mysql/app 使用CRT上传、XSHELL等工具上传到该目录,这里只做了CRT链接,其他工具具体可以百度。 ()创建用户,组,创建目录 groupadd mysql useradd mysql -r -g mysql -s /sbin/false mkdir -p /mysql/data//data mkdir -p /mysql/log/ 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 =
socket = /mysql/data//mysql.sock
default-character-set=utf8 [mysql]
disable-auto-rehash #允许通过TAB键提示
default-character-set = utf8
connect-timeout = [mysqld]
server-id =
port =
user = mysql
socket = /mysql/data//mysql.sock
pid-file = /mysql/data//mysql.pid
basedir = /mysql/app/mysql/
datadir = /mysql/data//data
#bind_address = 10.10.10.11
autocommit = character-set-server=utf8
explicit_defaults_for_timestamp=true
lower_case_table_names=
back_log=
max_connections=
max_connect_errors=
table_open_cache=
external-locking=FALSE
max_allowed_packet=32M
sort_buffer_size=2M
join_buffer_size=2M
thread_cache_size=
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 =
slow_query_log =
slow_query_log_file=/mysql/log//slow.log #log-warnings =
log_error_verbosity= log-error = /mysql/log//mysql.err
log_output = FILE #参数log_output指定了慢查询输出的格式,默认为FILE,你可以将它设为TABLE,然后就可以查询mysql架构下的slow_log表了 #log-queries-not-using-indexes
#log-slow-slave-statements
#general_log =
#general_log_file = /mysql/log//mysql.log
#max_binlog_size = 1G
#max_relay_log_size = 1G ## replication
#log-bin=mysql-bin
#server-id=
#binlog_format= ROW
#gtid_mode = on
#enforce_gtid_consistency =
#log_slave_updates =
#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
innodb_log_buffer_size=16M
innodb_log_file_size=256M #undo
innodb_log_files_in_group=
innodb_lock_wait_timeout=
innodb_file_per_table= #独立表空间
my.cnf
5.6中,需要把auto_commit 参数先注释掉,才能安心初始化。初始化安装完成后,可以把该参数再加上。
在/mysql/data/3306/ 下新建my.cnf文件,然后把上述代码复制进文件
【3】然后要重新授权,因为当前登录是root账户,新文件属于root
#创建文件
vi /mysql/data//my.cnf #张贴代码 #创建错误日志文件(不创建可能起不来)
touch /mysql/data//mysql.err #授权
chown -R mysql:mysql /mysql/log//
(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.-linux-glibc2.-x86_64.tar.gz echo 'begin check mysql exist......' |tee -a .txt
flag=`rpm -qa|grep mysql -c`
mysql_name=`rpm -qa|grep mysql`
if [ ${flag} -ne ];then
echo -n 'begin delete old mysqlinfo......'|tee -a .txt
rpm -e --nodeps ${mysql_name} >>.txt
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi
fi echo -n 'begin add group mysql......'|tee -a .txt
groupadd mysql
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'begin add user mysql......'|tee -a .txt
useradd mysql -r -g mysql -s /bin/false
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'begin mkdir mysql dir......'|tee -a .txt
mkdir -p /mysql/app
mkdir -p /mysql/data/
mkdir -p /mysql/log/
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'cp /mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz to /mysql/app......'|tee -a .txt
cp /mysql-5.7.-linux-glibc2.-x86_64.tar.gz /mysql/app/
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'cp /mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz to /mysql/app......'|tee -a .txt
cp /mysql-5.7.-linux-glibc2.-x86_64.tar.gz /mysql/app/
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'uncompression mysql install file......'|tee -a .txt
cd /mysql/app
tar -zxvf mysql-5.7.-linux-glibc2.-x86_64.tar.gz
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'create ln -s mysql_install_dir to mysql......'|tee -a .txt
ln -s mysql-5.7.-linux-glibc2.-x86_64 mysql
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'configure the $path......'|tee -a .txt
echo 'export PATH=/mysql/app/mysql/bin:$PATH'>>/etc/profile
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi
source /etc/profile echo -n 'cp /my.cnf to /etc/my.cnf......'|tee -a .txt
cp /my.cnf /etc/my.cnf
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'mysqld --initialize --user=mysql......'|tee -a .txt
mysqld --initialize --user=mysql
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'cp my.server file to /etc/init.d/mysql......'|tee -a .txt
cp /mysql/app/support-script/mysql.server /etc/init.d/mysql
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'chkconfig mysql on......'|tee -a .txt
chkconfig mysql on
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi echo -n 'start mysql service ......'|tee -a .txt
flag=`service mysql status |grep SUCCESS -c`
if [ ${flag} -ne ];then
echo -n 'ok'|tee -a .txt
else
service mysql start
if [ $? -eq ];then
echo 'OK'|tee -a .txt
else
echo 'Failed'|tee -a .txt
exit
fi
fi
【相关5.7安装参考笔记】
#!/bin/sh
#建立用户组
groupadd mysql
#建立用户
useradd -r -g mysql mysql
#切换到解压路径,解压二进制mysql包
cd /usr/local
if [ -d mysql-5.7.-linux-glibc2.-x86_64 ]; then
echo "mysql folder is exists"
else
tar -xzvf mysql-5.7.-linux-glibc2.-x86_64.tar.gz
fi
#做软链接起名为mysql
ln -s mysql-5.7.-linux-glibc2.-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 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
#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('') where user='root';
flush privileges;
quit; mysql -uroot -p123456
set password for 'root'@'localhost'=password("");
flush privileges;
15.安装完成后的优化(删除多余数据库与账户)
15.1、查看数据库的版本信息
1
2
3
4
5
6
7
|
MariaDB [(none)]> select version(); +----------------+ | version() | +----------------+ | 5.5.52-MariaDB | +----------------+ 1 row in set (0.18 sec) |
15.2、删除多余的账号(除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.3、修改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.4、删除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.5、优化权限字典表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.6、如何优化/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.7、如何历史记录消除隐患
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 这时候就没有输出了 |
到此,安装完成后的基本优化已经完成
(0.2.3)Mysql安装——二进制安装的更多相关文章
- MySQL/MariaDB二进制安装
本文说明MySQL/MariaDB二进制安装的过程 mysql和mariadb的安装方式基本一致,唯一初始化方式有点不一样 1.规划: 数据文件存储位置 /data/my ...
- MySQL RPM二进制安装
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL RPM二进制安装时间:2019年2月24日内容:MySQL RPM二进制安装重点:MySQL R ...
- MySQL linux二进制安装
200 ? "200px" : this.width)!important;} --> 介绍 1.创建用户和目录 groupadd mysql useradd -r -g m ...
- Mysql数据库二进制安装
MySQL数据库有四种安装方法: 源码包编译安装 RPM包安装 二进制文件安装 官方yum源安装 这里我们主要介绍二进制包的安装方法 在MySQL官网下载二进制包并且上传到服务器上 解压二进制包 [r ...
- Mysql的二进制安装和基础入门操作
前言:Mysql数据库,知识非常的多,要想学精学通这块知识,估计也要花费和学linux一样的精力和时间.小编也是只会些毛皮,给大家分享一下~ 一.MySQL安装 (1)安装方式: 1 .程序包yum安 ...
- MySQL 三 二进制安装
二进制格式安装 何谓二进制格式安装? 二进制格式安装,编译好的打包在tar文件里,安装时需要下载后解包至编译时指定的位置,然后进行相关配置,完成安装 版本信息:CentOS 7.4 安装m ...
- CentOS6+MySQL5.6二进制安装
一般我们安装mysql采用二进制安装的方式就足以满足我们的生产环境了,不过需要我们配置my.cnf文件 从官网下载二进制MySQL,选择Linux-Generic,最后这两个是二进制包 http:// ...
- 第一章·MySQL介绍及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 4.1 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客 ...
- MySQL简介及安装 mysql Ver 14.14 Distrib 5.7.28
1.MySQL简介 1.数据库产品演变 第一代数据库架构: RDBMS 关系型数据库时代 : 合的时代 代表产品 :Oracle .MSSQL .MySQL.SQL server 第二代数据库架构:拆 ...
随机推荐
- [Busybox]Busybox制作文件系统
问题: 1.目前busybox和bootstrap两种方案制作文件系统,哪种开发周期更短,更加简单? 2.如果需要在文件系统中添加某个package,要怎么做,如vim/udhcpd等? 转自:htt ...
- java自带线程池和队列详细讲解<转>
Java线程池使用说明 一简介 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观.Jdk1.5之后 ...
- Python高级编程之生成器(Generator)与coroutine(二):coroutine介绍
原创作品,转载请注明出处:点我 上一篇文章Python高级编程之生成器(Generator)与coroutine(一):Generator中,我们介绍了什么是Generator,以及写了几个使用Gen ...
- Ubuntu之No module named cv2
最简单的方法是:pip install opencv-python 另外,从源码安装的方法: 1下载opencv源码:http://opencv.org/releases.html 推荐2.4.13 ...
- List<T>转DataTable
/// <summary> /// 将集合类转换成DataTable /// </summary> /// <param name="list"> ...
- 性能测试工具LoadRunner中进程运行和线程运行区别
loadrunner controller将使用驱动程序mmdrv运行Vuser.用户可以在controller的run-time setting中选择Vuser的运行方式, 是多进程方式or多线程方 ...
- DEDECMS自定义表单提交后的跳转链接修改方法
dedecms自定义表单,点击提交后,默认跳转到首页,我们打开plus/diy.php,里面有这样一段代码: 代码如下:if($dsql->executenonequery($query)) { ...
- python3.4 百度API接口
# -*- coding: utf-8 -*- import urllib.request, json url = 'http://apis.baidu.com/netpopo/illegaladdr ...
- 配置使用TargetFrameworks输出多版本类库
1.类库右键 2.修改配置 修改前: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <Targe ...
- oracle数据库查询时间sql
select * from cc_picture_info where PICTURE_SOURCE = 3 AND UPLOAD_TIME > to_date('2017-03-29 16:5 ...