LNMP之MySQL数据库
1.安装MySQL数据库
01.创建mysql用户的账号
groupadd mysql
useradd -s /sbin/nologin -g mysql -M mysql
tail -l /etc/passwd
id mysql
获取mysql软件包:
首先下载好mysql软件包,在通过“rz”命令来上传到服务器
采用二进制安装方法:
02.解压并移动MySQL二进制软件包到指定的安装路径
tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
mv mysql-5.5.32-linux2.6-x86_64 /application/mysql-5.5.32
02.创建软链接,生成去掉版本号的访问路径并查看
ln -s /application/mysql-5.5.32/ /application/mysql
创建软链接(*软链接:若A是B的软链接则,A中存储的是指向B的地址,而
B中则是存放的文件)
03.初始化MySQL配置文件my.cnf
cd /application/mysql
ls -l support-files/*.cnf
[root@instance-yf0xzby9 mysql]# ls -l support-files/*.cnf
-rw-r--r-- 1 7161 wheel 4691 Jun 19 2013 support-files/my-huge.cnf
-rw-r--r-- 1 7161 wheel 19759 Jun 19 2013 support-files/my-innodb-heavy-4G.cnf
-rw-r--r-- 1 7161 wheel 4665 Jun 19 2013 support-files/my-large.cnf
-rw-r--r-- 1 7161 wheel 4676 Jun 19 2013 support-files/my-medium.cnf
-rw-r--r-- 1 7161 wheel 2840 Jun 19 2013 support-files/my-small.cnf
***
support-file下有my.conf的各种配置样例
使用cp全路径/bin/cp,可实现拷贝不出现替换提示,重名的文件会直接覆盖
不同的配置文件模板对硬件的要求不同
由低到高
my-medium.cnf my-small.cnf my-large.cnf my-huge.cnf my-innodb-heavy-4G.cnf
***
04.初始化MySQL数据库文件
[root@instance-yf0xzby9 mysql]# mkdir -p /application//mysql/data
[root@instance-yf0xzby9 mysql]# chown -R mysql.mysql /application/mysql
[root@instance-yf0xzby9 mysql]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
2.配置并启动MySQL数据库
01.设置MySQL的启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
# 拷贝MySQL启动脚本到MySQL的命令路径
chmod +x /etc/init.d/mysqld
# 使脚本可以执行
02.更换启动路径
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
03.启动MySQL数据库
/etc/init.d/mysql start
出现的错误:
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/instance-yf0xzby9.pid).
/var/run/mysqld/mysqld.pid
/var/log/mysqld.log
/var/lib/mysql
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
180928 09:50:45 mysqld_safe mysqld from pid file /var/lib/mysql/instance-yf0xzby9.pid ended
/application/mysql/bin/mysqld: Table 'mysql.plugin' doesn't exist
原因:系统中原本存在一个mysql数据库
解决方法:
1.查看是否有其他mysql数据可已经安装并使用了3306端口
ps aux|grep mysql*
rpm -qa|grep mysql
2.查看/etc/my.cnf
3.更改配置文件
[mysqld]
datadir=/application/mysql/data
4.重新启动数据库
/etc/init.d/mysql start
若还不行则查看日志文件
04.检查MySQL数据库是否启动
netstat -lntup|grep mysql
若未启动则看,在data下的日志,命令:tail -100 /application/mysql/data/instance-yf0xzby9.err
启动成功:tail -10 /application/mysql/data/instance-yf0xzby9.err来查看日志
05.设置开机自启动
chkconfig --add mysqld
chkconfig mysqld on
chkconfig --list mysqld
06.配置mysql全局命令使用路径
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
tail -l /etc/profile (查看)
source /etc/profile (将上一行添加到/etc/profile中的内容直接生效)
echo $PATH
[root@instance-yf0xzby9 mysql]# tail -l /etc/profile
fi
done
unset i
unset -f pathmunge
setterm -blank 0 &> /dev/null
setterm -powersave off &> /dev/null
setterm -powerdown 0 &> /dev/null
ulimit -SHn 65535
export PATH=/application/mysql/bin:$PATH
[root@instance-yf0xzby9 mysql]# source /etc/profile
[root@instance-yf0xzby9 mysql]# echo $PATH
/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
*如果不设置全局路径,则无法直接敲mysql等命令管理数据库
*只能采用带着路径的方式敲命令,另外一个方法则是将/application/mysql/bin下面的
*命令拷贝到已经是全局系统路径的/usr/local/bin下。
3.MySQL安全配置
01.为MySQL的root用户设置密码
mysqladmin -u root password 'hty123'
mysql
mysql -uroot -p
02.清理无用的MySQL用户及库