离线搭建mysql服务器(centos)

[亡魂溺海] 提交于 2020-01-12 09:09:14

0.环境:阿里云主机 centos7.3 64位

1.从Mysql官网下载安装包(linux generic版)

mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

2.解压安装

tar -xvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql

3.创建mysql用户,用户组

groupadd mysql
useradd -g mysql mysql

4.配置my.cnf

cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
socket=/var/lib/mysql/mysql.sock

[mysqld]
skip-name-resolve
#设置3306端口
port = 3306 
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M

#下面的初始值设的比较小,设大了可能会启动失败,我在这里卡了好久,后期需要调整再回来改
key_buffer=16K  
table_open_cache=4  
query_cache_limit=256K  
query_cache_size=4M  
max_allowed_packet=1M  
sort_buffer_size=64K  
read_buffer_size=256K  
thread_stack=64K  
innodb_buffer_pool_size = 56M

5.增加相关权限并启动mysql

cd /usr/local/mysql
chown -R mysql:mysql ./       修改当前目录拥有着为mysql用户

#这一步可能出很多问题,参见9.常见问题
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 安装数据库

chown -R mysql:mysql data  //修改当前data目录的拥有者为mysql用户

6.配置

    1.授予my.cnf最大权限

chown 777 /etc/my.cnf

    2.复制启动脚本到资源目录

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

     3.增加mysqld服务控制脚本执行权限

chmod +x /etc/rc.d/init.d/mysqld

     4.将mysqld服务加到系统服务

chkconfig --add mysqld

    5.检查mysqld服务是否已经生效

chkconfig --list mysqld

       得到如下结果表明成功:

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

     6.启动mysqld

这一步可能会出一些问题,参见常见问题
service mysqld start

另外
service mysqld stop       // 停止服务
service mysqld restart   // 重启服务
service mysqld status    // 状态查看

    7.将mysql的bin加入PATH环境变量

       编辑~/.bash_profile文件

vim ~/.bash_profile
#在最后添加:
export PATH=$PATH:/usr/local/mysql/bin
#保存并退出

#用source加载配置
source ~/.bash_profile

 

7.设置开机自启动

systemctl enable mysqld
systemctl daemon-reload

8.设置支持远程连接

1.进入mysql终端

mysql
#提示需要密码,此时密码为空,直接回车,进入mysql命令行
#bash提示符'$'变为mysql提示符'<<'

2.修改密码


set password for 'root'@'localhost'=password('123456');

3.给远程ip授权

#这里给所有ip授予了全部权限,以后有变动再改
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#刷新权限相关列表
flush privileges;
#退出mysql终端(这并不意味着关掉了mysql服务器)
quit
#在linux bash终端下重启mysql
systemctl restart mysqld
#再次进入mysql需要输入mysql -u root -p
#输入密码:123456

至此,服务器搭建完成

9.常见问题

1.第5步运行./scripts/mysql_install_db时可能会提示:

 

FATAL ERROR: please install the following Perl modules before executing
./scripts/mysql_install_db:Data::Dumper

解决方法:安装perl-Data-Dumper-2.145-3.el7.x86_64.rpm(指令:rpm -ivh perl-Data-Dumper-2.145-3.el7.x86_64.rpm,下面类似)

重新运行./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

紧接着可能又会提示缺少libaio.so

解决方法:安装libaio-0.3.109-13.el7.x86_64.rpm

重新运行./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

 

2.提示缺少mysql.sock或者mysql.sock冲突

解决方法:

#如果/var/lib/mysql存在则忽略这一步
mkdir /var/lib/mysql
#赋权
chmod 777 /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql

3.其他错误请看错误日志,查看mysqld状态,再谷歌/百度搜索

错误日志位置:/usr/local/mysql/data下的一个err文件

#查看最近的一次日志
less 错误日志.err
#查看所有日志
cat 错误日志.err
#查看mysql状态
systemctl status mysqld

4.解决问题后尝试重启mysql:systemctl restart mysqld,或者再次启动mysql:systemctl start mysql,

或者重新安装(先cd到mysql目录下)mysql:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!