本来考虑用docker创建MySQL,这样简单点,但是docker有时候容易bug宕机,
docker部署MySQL过程
1、拉取镜像
docker pull mysql:5.7
2、创建容器
docker run -id --name=jhjMySQL -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
或者下面这种挂在目录方式
sudo docker run -d -p 3333:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=nswi123456 --name mysql mysql:5.7
3、服务器开放接口
firewall-cmd --zone=public --add-port=33306/tcp --permanent
搞定
docker调整mysql配置过程
因为我要导入数据,要求mysql不区分大小写,则许在docker的mysql容器中 的etc 下面的my.conf加入下面配置
lower_case_table_names=1
进入容器
docker exec -it 容器名称 /bin/bash
修改配置,如果说vim找不到,则在容器中安装一个vim
yum -y install vim-enhanced
重启docker
服务器安装MySQL过程
1、查看服务器是否安装MySQL
rpm -qa | grep mysql
2、安装MySQL和MySQLserver
yum install -y mysql
yum install -y mysql-server
如果出现mysql-server找不到安装包问题
则进行下一步,没有则跳过第三步
3、解决mysql-server找不到安装包问题
一、下载文件的wget命令
yum -y install wget
二、下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
三、安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
四、安装MySQLserver
yum install mysql-server
4、两个安装好了就开启MySQL服务
service mysqld start
5、配置MySQL开机启动
chkconfig mysqld on
6、配置mysql密码两种方式
一、修改MySQL密码,第一次没有密码,直接enter下面输入密码
mysqladmin -u root -p password
二、第一次修改密码
mysqladmin -u root password 123456
7、其他mysql命令信息
修改MySQL配置信息
vim /etc/my.cnf
查看mysql端口信息
netstat -tunlp | grep mysqld
重启mysql
service mysqld restart
8、防火墙开放mysql端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
9、本地测试
mysql -uroot -p
输入密码,如果能进去、则mysql配置成功
远程mysql遇到的问题
使用Navicat连接的时候出现下面报错问题,百度之后解决了
(using password: YES)
解决方法
1、进入mysql
mysql -uroot -p
2、输入命令
grant all privileges on *.* to root@'%' identified by '你的root的密码';
3、退出
exit
这下远程便可以连接了,
如果还是不能,重启一下数据库,查看一下数据库端口号是否暴露出来
service mysqld restart
服务器修改mysql密码
1、进入mysql
mysql -uroot -p
2、使用mysql表
use mysql;
3、修改密码
update user set password=password(“填入新密码”) where user=‘root’;
服务器修改mysql端口号
1、编辑my.cnf文件
vi /etc/my.cnf
2、在[mysqld]下面修改端口
port=3308
3、重启mysql
service mysqld restart
4、如果mysql重启失败
如果你开启了selinux,mysql会无法启动,你会在日志中看到以下错误
[ERROR] Can’t start server: Bind on TCP/IP port: Permission denied
[ERROR] Do you already have another mysqld server running on port: 3308
那么,你需要关掉selinux,不想重启服务器,而关掉selinux,使用以下命令
/usr/sbin/setenforce 0
5、重启成功开放指定端口
firewall-cmd --zone=public --add-port=端口/tcp --permanent
6、重启载入配置,这样一般是成功的
firewall-cmd --reload
7、查看防火墙开放的tcp端口
firewall-cmd --list-ports
8、查看所有端口
netstat -ntlp
9、查看mysql端口信息
netstat -tunlp | grep mysqld