1.mysql数据库安装与配置
1)环境配置,以下都是在系统root用户下操作:
创建系统mysql用户:
groupadd mysql
useradd mysql -g mysql -d /mysql
增加mysql用户文件句柄最大值:
cat <<EOF>> /etc/security/limits.conf mysql hard nofile 65535 mysql soft nofile 65535 EOF cat /etc/security/limits.conf
关闭iptables:
chkconfig --list | grep iptables /etc/init.d/iptables stop chkconfig iptables off
添加环境变量:
cat <<EOF>> /etc/profile export PATH=$PATH:/mysql/mysql5.6.34/bin EOF cat /etc/profile
添加开机启动:
cd /etc/init.d/ rz ---上传mysqld文件 chown -R mysql.mysql /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld chkconfig --add mysqld chkconfig --list | grep mysqld chmod -R 755 /etc/rc.d
2)安装软件:
切换到mysql用户:su - mysql
上传安装包到/mysql目录:
mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
解压并创建目录:
tar -zxf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.34-linux-glibc2.5-x86_64 mysql5.6.34 rm -rf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz mkdir {data3306,backup,scripts} cd mysql5.6.34 rz ----上传配置文件my.cnf 注:配置相关参数的修改:vi my.cnf innodb_buffer_pool_size = 修改不超过系统内存的70%,如:内存8G,则设置为4G;内存16G,则设置为10G;内存32G,设置为20G
数据初始化:
./scripts/mysql_install_db --defaults-file=/mysql/mysql5.6.34/my.cnf --basedir=/mysql/mysql5.6.34 --datadir=/mysql/data3306 --user=mysql
启动数据库:
/etc/init.d/mysqld start
执行安全脚本:
ln -s /mysql/mysql.sock /tmp/ mysql_secure_installation
注:除了设置数据库root用户密码之外,都选择Y
2.数据库的登录与使用
切换到mysql用户;
登录数据库:
mysql -uroot -p密码 -S /mysql/mysql.sock 注:mysql.sock文件可通过ps -ef | grep mysql查询;
创建数据库:
mysql> create database dbname;
查看数据库:
mysql> show databases;
切换当然数据库:
mysql> use mysql;
注:mysql>为登录进入数据库的标识符。
取消当前会话自动提交:
mysql> set autocommit=0;
之后就可以执行相关的SQL语句;
查看SQL语句返回值,
如果错误则回滚
mysql> rollback;
如果正确则提交
mysql> commit;
3.建立和删除主键或唯一约束
适用范围
对已存在的超过1GB的表建立主键
风险评估
1)建立主键的过程会锁表,阻塞操作此表的业务进程,请谨慎。
2)表内有重复数据,导致创建失败
操作流程
1)检查唯一键上是否有重复数据,如果有需要DBA与开发协商处理。
2)增加和删除主键属于常规变更,需要在OA或ITIL中提交申请,经过审批后执行。
3)创建的主键与索引:
1.添加PRIMARY KEY(主键索引)
mysql>ALTER TABLE 'table_name' ADD PRIMARY KEY ('column');
2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE 'table_name' ADD UNIQUE ('column');
3.添加INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name (`column`);
4)检查操作是否成功
mysql>Show create table‘table_name’G
4.表增加字段
适用范围
对已存在的表加字段
风险评估
1)有默认值和非空约束的字段在增加时会全量更新表内旧数据,过程会锁表,阻塞修改此表数据库业务进程。
2)新增字段会对其依赖的对象和sql游标失效,请选择在业务低峰时段进程操作。
操作流程
1)根据业务特点参考数据库工作量信息选择操作时间。
2)进行增加字段操作
Alter table <schema>.<table_name> add col_test varchar(20);
3)对有默认值和非空约束的字段先增加字段,把默认值和非空约束去掉,而后通过批量更新历史数据的方式进行默认值设置,全部完成后再加非空约束。
Alter table <schema>.<table_name> add col_test varchar(20);
批量修改历史数据,添加非空约束
Alter table <schema>.<table_name> modify (col_test not null);
4)检查操作是否成功
Desc <schema>.<table_name>;