LANMP架构--------------mysql篇

系统环境:RHEL6x86-64selinuxandiptablesdisabled

1.Mysql安装

yum install -y gcc gcc-c++ make ncurses-devel bison openssl-devel zlib-devel cmake
tar zxvf mysql-5.5.12.tar.gz
cd mysql-5.5.12/
cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装blackhole存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装数据库分区
-DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据
-DWITH_READLINE=1 \ #快捷键功能
-DWITH_SSL=yes \ #支持SSL
-DDEFAULT_CHARSET=utf8 \ #使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci \ #校验字符
-DEXTRA_CHARSETS=all \ #安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 \ #MySQL监听端口
  • make&&makeinstall

    在编译的时候建议这样的修改

  • cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/lanmp/mysql \
    -DMYSQL_DATADIR=/usr/local/lanmp/mysql/data
    -DMYSQL_UNIX_ADDR=/usr/local/lanmp/mysql/data/mysql.sock \
    这样的修改很关键:把mysql的目录文件都放在了一个文件夹中,之后如果要部署lanmp架构的其他部分,都可以放到这个lanmp文件中(方便往后对lanmp架构的迁移)

重新编译时,需要清除旧的对象文件和缓存信息

make clean
rm -f CmakeCache.txt

在用源码安装的时候,系统是不会分配相对应的用户的(以后我们需要一些文件的权限进行修改)因此

useradd -M -s /sbin/nologin mysql

开始对mysql的文件进行一些配置

cd /usr/local/mysql
cp support-files/my-large.cnf /etc/my.cnf #根据你的主机内存复制mysql配置文件

在配置的时候一定要注意权限,不然在启动的时候就会出现报错

chown -R mysql.mysql . (这块安装库文件前都要改为mysql)
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data (指定库文件的安装位置)
chown -R root .(权限改回来)
chown -R mysql data(data文件是mysql内部的,要mysql权限)
cp support-files/mysql.server /etc/init.d/mysqld(复制启动脚本)
chmod +x /etc/init.d/mysqld \赋予可执行权限

开启服务

/etc/init.d/mysqld start#service mysqld start

当然为了使用方便

PATH=$PATH:/usr/local/mysql/bin
source ~/.bash_profile #使之生效

赋予密码

mysql_secure_installation #按提示完成mysql安全设置,生产环境推荐使用

安装好了就可以直接运行了

mysql -uroot -predhat //密码有的话才用-p
show databases; \显示数据库
use mysql;  \进入数据库
show tables;    \显示数据库中的表
desc user;  \查看user表的数据结构

查询--------------------------------------

select user,password from user;

创建数据库和表

create database redhat;             创建redhat数据库
use   redhat;
create table linux( username varchar(15) not null,password varchar(15) not null);   创建表,username,password字段
select * from mysql.user;       查询mysql库下的user表中的所以

在表中插入数据

insert into linux values ('user1','passwd1');                 #在linux表中插入值为username = user1,password = password1
update linux set password=password('passwd2') where username='user1';
#更新linux表中user1 的密码为password2
delete from linux where username='user1';                 #删除linux表中user1的所以内容
drop table linux;#删除表

授权部分

grant select on  *.* to user1@localhost identified by 'passwd1';          #授权user1 密码为passwd1  并且只能在本地 查询数据库的所以内容
grant all on mysql.* to user2@'%' identified by 'passwd2';        #授权user2 密码为passwd2,all权限
可以从远程任意主机登录mysql 并且可以对mysql数据库任意操作
grant all on mysql.* to user3@'192.168.0.254' identified by 'passwd3';  授权user3只能从254上进来

备份

/var/lib/mysql
mysqldump -uroot -predhat mysql > mysql.bak  备份mysql库到mysql.bak
mysql -uroot -predhat redhat < mysql.bak 恢复mysql.bak 到redhat库

如果忘记mysql的root密码

/etc/init.d/mysqld stop /先关闭mysql
mysqld_safe --skip-grant-tables  &  #跳过grant-tables授权表  不需要认证登录本地mysql数据库
update   mysql.user set password=password('redhat') where user='root';  更新mysql.user 表中条件为root用户的密码为加密redhat
/etc/init.d/mysql restart

你可能感兴趣的:(mysql,数据库,LANMP构架)