最近想玩服务器了,所有尝试着装了个MySQL数据库
安装环境:系统是 centos6.5
1.下载MySQL数据库
从官网上下载MySQL数据库
下载地址:
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
下载版本:
我下载的是5.6.33,Linux通用版
2.解压
#解压
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
#复制解压后的mysql目录
cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql/mysql3306
#我这里复制的路径包含mysql文件夹,也有3306这个,有点了解的大概都知道我要干什么了,为装第二个MySQL数据库做准备,现在我就讲如何装一个通用版的MySQL
3.添加组添加用户方便管理
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql
cd /usr/local/mysql/
chown -R mysql:mysql ./
#切换文件的所有权,把当前目录下的所有文件所有权都修改了,或者也可以只修改data目录下的文件所有权
chown -R mysql:mysql data
4.安装数据库,此处可能出现错误。
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql/
FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:
Data::Dumper
#解决方法:
yum install -y perl-Data-Dumper
5.添加mysql服务开机自启动
添加开机启动,把启动脚本放到开机初始化目录。
cp support-files/mysql.server /etc/init.d/mysql
# 赋予可执行权限
chmod +x /etc/init.d/mysql
# 添加服务
chkconfig --add mysql
# 显示服务列表
chkconfig --list
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则执行
chkconfig --level 345 mysql on
6.修改配置文件
my.cnf
#
[client]
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8
[mysqld]
basedir=/usr/mysql
datadir=/usr/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=UTF8
explicit_defaults_for_timestamp=true
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
support-files/mysql.server 和 /etc/init.d/mysql,都是同一个文件复制的,所以都要修改
也可以只修改/etc/init.d/mysql,但是如果想装多个mysql的话建议全都修改
/etc/init.d/mysql #启动脚本
#修改的基本就两个地方
basedir=/usr/mysql
datadir=/usr/mysql/data
然后就可以启动服务了
service mysql start
7.把mysql客户端放到默认路径
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
#注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql
8.连接数据库,修改root密码
#连接
mysql -h127.0.0.1 -P3306 -uroot -p
#-P是指定端口,如果有多个mysql可以用上
#-p是密码
#-h指定连接的服务地址,在本机可以是localhost
出现错误
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
这时要指定socket文件可以添加连接参数
mysql -uroot -p --socket=/tmp/mysql3306.sock --port=3306
#当然这里不指定端口也是可以的
当然平时在很多的监控软件中如zabbix很多都有要求指定socket文件,当然socket文件还在一般情况下通过socket文件是可以免密码登录的,所以以上的登录也可以这样直接登录
mysql -S /tmp/mysql3307.sock
#"S"的选项和"--socket="是一样的
#"P"和"--port="同理
因为第一次没有密码,所以直接回车就可以进入MySQL
之后就要修改密码了
#显示数据库
mysql> show databases;
#切换数据库
mysql> use msyql;
#修改密码
mysql> update user set password=password('newpassword') where user='root';
'newpassword'是你的新密码,可以是简单的'123456'
#刷新权限
mysql> flush privileges;
#退出
mysql> exit;
然后你就可以用Navicat或者sqlyog连接了
如果报1130错误,是由于没有给远程连接的用户权限问题
解决:
use mysql;
select 'host' from user where user='root';
update user set host = '%' where user ='root';
flush privileges;