Mysql安装
端口号:3306
Mysql官网http://mirrors.sohu.com/mysql/
平时安装mysql用的都是源码包,但是它的编译需要很长时间,在这里做实验用的是二进制免编译的包;免编译的包带glibc字样,源码包是包名(比如mysql)加版本号加后缀,现在线上大部分用的是mysql-5.0和mysql-5.1,其中版本5.6稳定性强。安装mysql要区分平台,机器是32位机还是64位机。
uname –i
i386表示32位要下载i686的包,x86_64,为64位。
./scripts/mysql_install-db,--user表示数据库所属主,--datadir表示数据库安装到哪里,一般放在大空间的分区最后显示两个Ok才表示安装成功。
Mysqld的日志在/data/mysql,如果启动不了,可以去查看错误日主去解决问题,这个错误日志一般是主机名.err。
查看mysql编译参数:cat/usr/local/mysql/bin/mysqlbug|grep configure
关于建立mysql用户,是为了提高安全,如果mysql服务被黑,那么它也只可以拿mysql权限,而不是root权限
一、Mysql安装方式分类
1.源码包安装
从MySQL5.5开始就要用cmake安装了,已不能用./configure编译安装,我们查看一下mysql5.6.12的安装目录,从下面的安装目录我们可以看到,里面根本没有configure文件,下面我
们来说说cmake,
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
2.通用二进制包安装
通用二进制包安装说明软件包已经编译好,不需要我们重新编译,我们只要解压一下,进行简单配置便可以运行使用!
3.RPM包安装
这个安装我们不过多说明,大家应该都知道!好了,下面我们就来具体说明这三种安装!
步骤:
初始化:
yuminstall -y wget
cd /usr/local/src //以后wget统一放在这个文件
wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-i686-glibc23.tar.gz
tar -zxvf mysql-5.1.73-linux-i686-glibc23.tar.gz
mvmysql-5.1.73-linux-i686-glibc23 /usr/local/mysql //挪动位置
cd/usr/local/mysql
useradd -s/sbin/nologin mysql //建立mysql用户
mkdir -p/data/mysql //数据库文件都会放在这个目录
chown -Rmysql:mysql /data/mysql //更改权限
./scripts/mysql_install_db--user=mysql --datadir=/data/mysql //初始化
echo $? //显示0表示成功
配置mysql:
cpsupport-files/my-large.cnf /etc/my.cnf //拷贝配置文件
cpsupport-files/mysql.server /etc/init.d/mysqld //拷贝启动脚本
vim/etc/init.d/mysqld //修改启动脚本
datadir=/data/mysql //配置文件加入数据库存放的目录,前面创建的
chkconfig –addmysqld //把mysqld加入系统服务项
chkconfig mysqldon //开机启动msyqld
编译安装mysql
#测试时5.6版本很多不足
cd /usr/local/src
yum install –ygcc gcc-c++ //编译需要的包
yum install -yncurses-devel //编译需要的包
yum install -yopenssl openssl-devel //cmake需要ssl支持
wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.51.tar.gz
#改网址常常更新,不行就用http://mirrors.sohu.com,一步一步打开
tar -zxvfmysql-5.5.49.tar.gz
cd mysql-5.5.49
yum install -ycmake
cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/data-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all-DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
echo $?
make #时间大约10分钟
echo $?
make install
echo $?
cd/usr/local/mysql/
useradd -s/sbin/nologin mysql
chown -Rmysql:mysql /usr/local/mysql/
mkdir -p/mysql/data
./scripts/mysql_install_db--user=mysql --datadir=/mysql/data
chown -R root /usr/local/mysql
chown -R mysqldata
cpsupport-files/my-medium.cnf /etc/my.cnf //拷贝mysql主配置文件
bin/mysqld_safe--user=mysql &
cpsupport-files/mysql.server /etc/init.d/mysqld
chmod +x/etc/init.d/mysqld
/etc/init.d/mysqldstart
设置root密码
进入mysql
mysqladmin -uroot password ‘aminglinux.com‘ //mysqladmin已经声明变量PATH
/usr/local/mysql/bin/mysqladmin -uroot-paminglinux.com password ‘123‘ #重设置密码
mysql -uroot -paminglinux.com //登陆mysql
使用sock本地登陆mysql -uroot -S/tmp/mysql.sock -paminglinux.com
//mysql5.7root有默认密码。
Mysql语句
grant all on discuz.* to‘aming‘@‘localhost‘ identified by ‘123456aminglinux‘; 授权
show databases; //查看所有数据库
create database tx1; //创建数据库
use tx1; //使用某个数据库
create table tx1 (`id` int (4),`name`char(40)); //创建表
insert into tx1 values (1,’da’);
show tables; //查看表
desc tx1; //查看表的字段
truncate table tx1; //清空表
drop table tx1; //删除表
drop database tx1; //删除数据库
show create table tx1; //查看建数据
select user(); //查看当前用户
select database(); //查看当前数据库
select version; //查看数据库版本
show status; //查看mysql参数,用于调优
show engines; //支持哪些引擎
show variables like ‘%storage_engine%‘; //目前使用哪个引擎
show create table 表名; //某个表使用哪个引擎
mysql操作
vim /etc/my.cnf
开启慢查询日志
在[mysqld]添加内容
long_query_time = 1
log_slow_queries = /data/mysql/slow.log
root密码重置
在[mysqld]添加内容
skip-grant //表示进入数据库不用授权
/etc/init.d/mysqld restart
mysql //此时进入数据库不用密码
mysql> use mysql;
mysql> update user setpassword=password(‘aming‘) where user=‘root‘;
mysql> exit;
修改/etc/my.cnf 去掉skip-grant 重启服务,密码修改成功。
mysql远程登陆
首先在本地数据库(服务器)授权
mysql> grant all on *.* to‘root‘@‘192.168.134.141‘ identified by ‘123456‘;
all所有权限 *所有库,*所有表,root用户,192.168.134.141远程IP(客户端)123456远程登陆密码
然后在192.168.134.141这台机器执行
/usr/local/mysql/bin/mysql -uroot-h192.168.134.137 -P3306 –p123456
mysql> select user(); //查看当前用户
数据库备份与恢复
mysqldump -uroot -predhat--default-character-set=gbk discuz > /data/discuz.sql //备份库
mysql -uroot -predhat--default-character-set=gbk discuz < /data/discuz.sql //恢复库
mysqldump -uroot -predhat--default-character-set=gbk discuz pre_forum_post > /data/post.sql //备份表
mysql -uroot -predhat--default-character-set=gbk discuz < /data/post.sql //恢复表