系统环境: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