公告:欢迎来到HongFei.Sun的轻博客

mysql授权用户

发布于:2020-02-24 14:13:48

1.查看mysql数据库中所有用户

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

2.查看数据库中具体某个用户的权限

show grants for 'cactiuser'@'%'  

3.查看user表结结构 

desc mysql.user

4.添加用户


grant all privileges on db_name.* to db_user@'%' identified by 'db_pass';


flush privileges;

.....

Mysql的安装与配置

发布于:2020-02-19 18:07:22

Mysql的安装与配置

安装mysql相关的依赖包

yum install -y cmake make gcc gcc-c++ ncurses-devel

1. 创建msyql用户和组

groupadd  mysql # 创建一个组
useradd mysql -s /sbin/nologin -g mysql#创建一个用户

2. 创建必要目录并授权

# /usr/local/mysql
mkdir /usr/local/mysql
mkdir -p /mysql/mysql_data
# 授权
chown -R mysql:mysql /mysql/ 

3. 解压源码包

tar -zxvf mysql-5.7.21.tar.gz # 解压
cd mysql-5.7.21 # 切换目录

4. 查看安装说明文件 INSTALL

cat INSTALL


通过文档可以知道,Mysql5.7编译需要使用cmake进行编译,所以首先需要先安装一下cmake

yum install -y cmake

5. boost库安装

在msyql的安装说明文档中有相关的介绍,Mysql5.7所需要的boost版为:1.59.0,
官方网站:http://www.boost.org/
下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
安装目录:/usr/local/boost。下载后,解压到该目录即可。

建议在cmake阶段添加参数-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost即可

如果安装的版本不对的话,会报错。

6. 配置安装选项(预编译)

# 切换到mysql-5.7.21源码目录下
# cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/mysql_data -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
## 实际执行时,需要调成一行
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/mysql_data -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

参数说明
-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DWITH_BOOST:boost源码路径
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
-DEXTRA_CHARSETS:安装所有字符集

7. 编译安装

make && make install

到这里,mysql的安装就完成了

mysql的配置

1. mysql配置

由于安装的是msyql5.7.21,所以源码包中并没有带默认配置文件。在这里暂时可以不做配置,直接往后面操作。如果安装的是其它的版本,会带有配置文件,复制一个,做出相应的调整即可。

在这里,就不使用了配置文件了,首先检查一下/etc下是否有my.cnf, 如果有,直接删除或者作备份后删除。

当然,在这里也可以手动创建一个配置文件,vim /etc/my.cnf,其内容如下,配置内容可以根据实际情况自行调整

vim /etc/my.cnf [client] port = 3306 socket = /tmp/mysql.sock [mysqld] character_set_server=utf8
init_connect='SET NAMES utf8' basedir=/usr/local/mysql
datadir=/mysql/mysql_data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

max_connections=5000 default-time_zone = '+8:00' 

2. 初始化数据库

# 初始化MySQL,切记--defaults-file=/etc/my.cnf要放在参数的第一位,初始化信息可以在MySQL的errorlog中查看,并且在errorlog会生成一个root的随机密码,该随机密码仅仅为root@localhost用户所有。
# 初始化数据库
mysqld --initialize --explicit_defaults_for_timestamp

在初始化数据库时,可能会报如下错误:

这是因为设置安装选项时,编码设置有问题,在这里重新设置一下即可。

./mysqld --initialize --explicit_defaults_for_timestamp --character-set-server=utf8

初始化成功后,会给出如下提示:并给出了随机生成的密码,这个不需要理会


初始化数据库时,如果出现如下错误:

出现这个问题 ,是因为数据库的数据存放目录,里面不为空,这里进行数据库数据文件存放目当,将其中的内容清空即可。

3. 安装ssl,可指定文件生成路径,默认为DATA里面

# 执行 `安装目录/bin/mysql_ssl_rsa_setup` /usr/local/mysql/bin/mysql_ssl_rsa_setup

4. 启动mysql

/usr/local/mysql/support-files/mysql.server start

5. 登录并设置新密码

cd /usr/local/mysql/bin ./mysql -uroot -p
#按提示输入随机生成的密码,也可以按照之前的方式重置一下密码,建议大家使用之前的方法重置密码。

重置密码

  1. 停止mysql服务
killall mysqld
  1. 绕过权限表登录mysql
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  1. 更新root密码
#选择数据库
mysql>use msyql
#更新root密码
mysql>UPDATE user SET authentication_string=PASSWORD("new password") WHERE user='username'; # 刷新权限表
mysql>flush privileges; 
  1. 重启msyql,并登录msyql
#停止mysql
killall mysqld
# 启动mysql /usr/local/mysql/support-files/mysql.server start
# 使用新密码登录mysql /usr/local/mysql/bin/mysql -uroot -p
# 按提示输入新密码即可

登录之后,可能会提示如下错误:

解决办法,执行如下命令:

quit # 退出mysql
killall mysqld /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
mysql>flush privileges; mysql>set password for 'root'@'localhost' =password('111111'); mysql>flush privileges; 

6. 设置远程登录

可按照之前的方式进行设置,在这里,咱们直接新添加一个远程用户yfketang

# 添加远程用户
mysql>grant all privileges on *.* to yfketang@'%'identified by '123456'; #刷新权限
mysql>flush privileges; 

到这里就可以使用yfketang用户远程登录mysql了

7. 添加系统服务,并设置开机启动

  1. 复制启动脚本到 /etc/init.d中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

执行之后,重启mysql服务就可以执行下边的操作了

service mysqld restart
  1. 添加到系统服务
chkconfig --add mysqld
chkconfig mysqld on

到这里,mysql的安装就完成了。

.....

apache的AllowOverride以及Options使用详解

发布于:2020-02-18 22:23:25
AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。对于AllowOverride,还可以对它指定如下一些能被重写的指令类型. 

通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即 

复制代码代码如下:

<Directory /> 
AllowOverride None 
</Directory> 


在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。 

而对于 URL rewrite 来说,至少需要把目录设置为 

<input type="hidden" .....