一、安装
方法一:通过Docker安装MySQL
1. search
docker search mysql
2. pull
docker pull mysql
3. images
docker images
4. 安装 映射端口 重命名
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
5. 查看运行中的容器
docker ps
至此,大功告成!使用数据库软件就可以连接
方法二:通过镜像安装MySQL
第一步:下载
方法一:单击此处下载,如下图:
方法二:在你要放置安装包的目录下执行 如下语句
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
第二步:解压并移动
说明:移动不是必须的,但是后面的配置里有指定文件目录,并且在Mac上安装mysql 默认也会放到 /usr/local ,所有最好按照以下步骤。
解压:
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
移动:
mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/mysql
改名(改名和软连接,二选一)
① 改名:
mv mysql-5.7.29-linux-glibc2.12-x86_64/ mysql-5.7.29
② 软连接命令:
ln -s mysql-5.7.29-linux-glibc2.12-x86_64/ mysql-5.7.29
第三步:创建用户,并给数据目录赋予权限
创建mysql组和用户:
groupadd mysql
useradd -r -g mysql mysql
创建mysq数据目录(回到根目录):
cd /
mkdir -p data
cd data/
mkdir -p mysql
赋予权限:
chown mysql:mysql -R /data/mysql
第四步:配置参数
执行:
vim /etc/my.cnf
然后 按 i 进入编辑模式,把下面内容复制进去:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/mysql/mysql-5.7.29/
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
# character config
character_set_server=utf8mb4
symbolic-links=0
编辑完后按esc后按住 shift+: 输入wq保存并退出 。
第五步:初始化mysql
cd /usr/mysql/mysql-5.7.29/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/mysql/mysql-5.7.29/ --datadir=/data/mysql/ --user=mysql --initialize
可能会出现如下问题(没有请忽略):
解决方法:这是却少numactl这个时候如果是Centos就执行 yum -y install numactl 就可以解决这个问题了,ubuntu的运行 sudo apt-get install numactl 。如下:
然后执行上述语句,发现执行成功:
查看初始密码,复制出来:
cat /data/mysql/mysql.err
第六步:启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中:
cp /usr/mysql/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysql
启动:
service mysqld start
可能会出现如下问题(没有请忽略):
原因:因为没有路径也没有权限,所以创建此路径并授权给mysql用户,如下:
解决!
查看是否启动:
ps -ef|grep mysql
更改密码:
cd /usr/mysql/mysql-5.7.29/bin
./mysql -u root -p
提示输入密码,把刚才复制的密码粘过来
然后执行修改,并刷新
SET PASSWORD = PASSWORD('**********');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
到这里就结束了,如果想关闭mysql 执行 service mysqld stop
这时候你如果使用远程连接,你会发现你无法连接……
这里主要执行下面三个命令(先登录数据库):
use mysql # 访问mysql库
update user set host = '%' where user = 'root'; # 使root能再任何host访问
FLUSH PRIVILEGES; # 刷新
解决:
注意事项:
如果以上步骤有权限问题,可执行以下命令,还有把自启打开:
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysqld
还有在安装前如果你的系统有Mariadb,就要卸载。
第一条命令用来查看,如果有就用下面的命令卸载
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
另外,如果5.7 安装的时候出现的东西没有解决可能应为你系统在安装前不是干净的,需要卸载残余mysql 文件。
设置MySQL开机自启
1、将服务文件拷贝到init.d下,并重命名为mysqld
cp /usr/mysql/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
chmod +x /etc/init.d/mysqld
3、添加服务
chkconfig --add mysqld
4、显示服务列表
chkconfig --list
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 mysqld on
5、重启生效
reboot
二、卸载
1、查看当前安装mysql情况
rpm -qa | grep -i mysql
2、停止mysql服务、删除之前安装的mysql
删除命令:rpm -ev 包名
如果提示依赖包错误,则使用以下命令尝试:rpm -ev 包名 –-nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
,则用以下命令尝试:rpm -e --noscripts 包名
3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
使用以下命令删除指定目录:rm -rf 路径
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除:
rm -rf /etc/my.cnf
4、再次查找机器是否安装mysql
rpm -qa | grep -i mysql
如果无结果,说明mysql已经彻底卸载。
如果出现文章之外的问题,可以私信笔者。