Linux下操作数据库
一、安装数据库
1.卸载旧版本
-
- 检查是否安装有MySQL Server:rpm -qa | grep mysql
- rpm -e mysql_libs //普通删除模式
- rpm -e –nodeps mysql_libs // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
2.安装MySQL
1)yum在线安装
-
- 通过命令查看yum上提供的数据库可下载版本:yum list | grep mysql
- 安装数据库: yum -y install mysql-server mysql-devel
2)编译安装MySQL
-
- 安装编译的环境(需要的包):yum -y install make gcc-c++ cmake bison-devel ncurses-devel
- 下载mysql-5.6.14.tar.gz,并解压:tar -zxvf mysql-5.6.14.tar.gz
- 进入到解压后的文件夹:cd mysql-5.6.14
- 编译安装[源码=》编译]:cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
- 编译并安装:make && make install
-
配置MySQL:
- 查看是否有mysql用户及用户组:cat /etc/passwd 查看用户列表;cat /etc/group 查看用户组列表
- 创建mysql用户及用户组:groupadd mysql;useradd -g mysql mysql
- 修改/usr/local/mysql权限:chown -R mysql:mysql /usr/local/mysql
- 初始化配置,进入安装路径(在执行下面的指令),执行初始化配置脚本,创建系统自带的数据库和表:cd /usr/local/mysql;初始化指令:scripts/mysql_install_db –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data –user=mysql
- 注意点:1.在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索“$basedir/my.cnf”,在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置
2.在CentOS 6.8版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动,修改名 称,防止干扰:mv /etc/my.cnf /etc/my.cnf.bak
3.连接数据库
1)查看是否是开机启动(若2~5都是on则表明是开机启动):chkconfig –list | grep mysql
2)设置开机启动(若2~5都是off):chkconfig mysql on
3)启动数据库:service mysql start
4)停止数据库 service mysql stop
5)进入mysql并设置密码为XXX:
-
-
- 进入mysql目录:cd /usr/local/mysql/bin
- 第一次登陆不需要密码:./mysql -u root -p
- 设置密码:mysql> SET PASSWORD = PASSWORD(\’XXX\’);
- 明文登录:./mysql -u root -pXXX,-p和XXX之间没有空格
-
4.Windows的navicat连接Linux的数据库报错
解决办法:
-
- 关闭防火墙:service iptables stop
- 授权:GRANT ALL PRIVILEGES ON *.* TO \’root\’@\’%\’ IDENTIFIED BY \’123456\’ WITH GRANT OPTION; FLUSH PRIVILEGES;
- 启动数据库:service mysql start
二、执行SQL语句
- 创建数据库:create database IF NOT EXISTS test;
- 查看当前系统中存在的数据库:show databases;
- 切换到test数据库:use test;
- 创建表:create table IF NOT EXISTS test001;
- 查询数据:
- 更新数据:
- 删除数据:
三、配置mysql环境变量
1.修改配置文件:vi /etc/profile
-
- 方法一:写一个MYSQL_HOME,值为mysql的安装路径:MYSQL_HOME=/usr/local/mysql
在PATH后面加上$MYSQL_HOME/bin:PATH=$PATH:$MYSQL_HOME/bin
export后面加上MYSQL_HOME:export PATH MYSQL_HOME
- 方法一:写一个MYSQL_HOME,值为mysql的安装路径:MYSQL_HOME=/usr/local/mysql
-
- 方法二:vi /etc/profile进入后,在最后一行添加:export PATH=$PATH:/usr/local/mysql/bin即可
2.重新加载配置文件:source /etc/profile
四、编写SQL脚本
1.新建脚本(opt目录下):touch deldata.sh
2.编写sql语句:
-
- #!/bin/bash
- mysql的安装路径:mysql=/usr/local/mysql/bin/mysql(或者将mysql加入环境变量)
- #数据库信息:
HOSTNAME=”IP”
PORT=”3306″
USERNAME=”root”
PASSWORD=”123456″
-
- #数据库和数据表名称:
DBNAME=”tes”
TABLENAME=”test001″
-
- #插入数据:
sql=”insert into ${TABLENAME} values(\’王五\’,88888)”
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e”${sql}”
-
- #查询数据:
sql=”select * from ${TABLENAME}”
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e”${sql}”