MySQL
一、安装
1. Ubuntu安装
1. apt install 安装
自动安装好后设置密码就行
2. apt deb包安装
- 下载deb安装包
- 进入MySQL官网找到MySQL8.0参考手册
- 点击侧边栏安装和升级MySQL
- 选择在Linux上安装MySQL
- 选择使用MySQL APT 包在Linux上安装MySQL
- 点击 A Quick Guide to Using the MySQL APT Repository
- 点击全新安装MySQL的步骤
- 点击跳转MySQL APT存储库的下载页面
- 复制下载链接,将安装包下载到Linux
1
wget https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb
- 执行下载的deb文件
1
sudo dpkg -i mysql-apt-config_0.8.23-1_all.deb
- 选择MySQL Server版本
- 选择MySQL-8.0
- 更新apt依赖
1
sudo apt update
- 安装MySQL Server
1
sudo apt install mysql-server
- 当需要选择时输入
y回车继续安装 - 在出现的对话框中输入密码
- 在输入一遍密码确认
- 根据需求选择加密选项,第一项为强密码,第二项为弱密码
- 当需要选择时输入
- 测试安装
1
mysql -uroot -p你设置的密码
- 由于是默认安装的MySql,我们需要配置一下。不配置也是可以用的。
1
sudo mysql_secure_installation
输入root密码进行下一步操作
是否安装强密码验证组件,根据实际开发需求输入
是否要修改root的密码,根据实际需求输入
是否删除匿名用户,根据实际需求选择
是否禁止root远程登录,一般来说生产线肯定是需要禁止的,如果是生产线最好还是输y。如果是开发或测试之类的就输n,方便查看数据。
是否删除test数据库,根据实际需求选择
是否重新加载特权表
至此就安装和配置都完成了。
2. Centos安装
1. 压缩包安装
查看 mysql 的安装包检查是否安装mariadb,命令:
1
rpm -qa|grep mariadb
删除mariadb,命令:
1
rpm -e --nodeps mariadb-libs
下载mysql,命令:
1
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
解压,命令:
1
2
3xz -dev mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar /tools重命名:
1
mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
进入mysql8,创建data文件夹
1
2cd mysql8
mkdir data配置mysql环境变量,打开/etc/profile添加如下
1
2
3
4
5MYSQL_HOME=/opt/mysql8/bin
PATH=$PATH:$MYSQL_HOME
export MYSQL_HOME PATH配置完成后重载:
1
source /etc/profile
创建mysql用户组和mysql用户
1
2groupadd mysql
useradd -g mysql mysql关联myql用户到mysql用户组中
进入到mysql8所在目录,此例中为/opt/
1
2
3
4chown -R mysql:mysql mysql8
chown -R mysql:mysql mysql8/data
chown -R mysql mysql8
chown -R mysql mysql8/data更改mysql安装文件夹mysql的权限
1
chmod -R 755 mysql8
安装libaio依赖包
查询是否安装libaio依赖包
1
yum search libaio
如果没安装,可以用下面命令安装:
1
2
3yum install libaio
apt-get -y install libaio* libaio-dev*初始化mysql:
1
mysqld --user=mysql --basedir=/tools/mysql/mysql8 --datadir=/tools/mysql/mysql8/data --initialize
初始化完成后记住最后一行末尾的root@localhost后的密码,是mysql数据库登录的临时密码,每个人都不一样
1
2022-01-14T01:56:34.034586Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hEpHyXo/8#C+
启动mysql服务
1
sh /opt/mysql8/support-files/mysql.server start
启动报错,原因:没有修改mysql的配置文件
修改Mysql配置文件
1
vim /opt/mysql8/support-files/mysql.server
修改以下属性:
basedir=/opt/mysql8
datadir=/opt/mysql8/datamysqld_pid_file_path=/opt/mysql8/data/mysqld_pid
将mysql配置文件拷贝到etc/init.d下,并修改权限
1
2cp /opt/mysql8/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld将mysql服务加到系统服务中
1
chkconfig --add mysqld
开机自启动
1
chkconfig mysqld on
修改my.cnf文件
这里下载的mysql8.0.27版本并没有这个my.cnf文件,因此直接创建的。
1
vim /etc/my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
basedir=/opt/mysql8
datadir=/opt/mysql8/data
socket=/tmp/mysql.sock
user=mysql
port=3306
character_set_server=utf8
# symbolic-links=0
# bind-address=0.0.0.0
[mysqld_safe]
log-error=/opt/mysql8/data/error.log
pid-file=/opt/mysql8/data/mysqld.pid
tmpdir=/tmp授权文件my.cnf
1
2
3chown mysql:mysql my.cnf
chown mysql my.cnf
chmod 755 my.cnf启动服务
1
2
3
4
5查看服务:service mysqld status
停止服务:service mysqld stop
启动服务:service mysqld start登录mysql及会出现的问题
1
mysql -uroot -p
若出现错误:./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
执行:
1
yum install libncurses*
测试mysql
1
mysql -uroot -p
2. rpm安装
查看 mysql 的安装包检查是否安装mariadb,命令:
1
rpm -qa|grep mariadb
删除mariadb,命令:
1
rpm -e --nodeps mariadb-libs
下载mysql,命令:
1
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar
解压,命令:
1
tar -xvf mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar
安装common,命令:
1
rpm -ivh mysql-community-common-8.0.27-1.el8.x86_64.rpm --nodeps --force
安装libs,命令:
1
rpm -ivh mysql-community-libs-8.0.27-1.el8.x86_64.rpm --nodeps --force
安装client,命令:
1
rpm -ivh mysql-community-client-8.0.27-1.el8.x86_64.rpm --nodeps --force
安装server,命令:
1
rpm -ivh mysql-community-server-8.0.27-1.el8.x86_64.rpm --nodeps --force
查看 mysql 的安装包,命令:
1
rpm -qa | grep mysql
数据库初始化和配置:
1
2
3
4mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;查看数据库密码:
1
cat /var/log/mysqld.log | grep password
登录数据库:
1
mysql -uroot -p
修改密码:
1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx';
3. 卸载
1. Ubuntu卸载MySQL
查看MySQL依赖 :
1
dpkg --list|grep mysql
卸载:
1
sudo apt-get remove mysql-common
卸载:
1
2sudo apt-get autoremove --purge mysql-server-8.0 #(这里版本对应即可)
清除残留数据:
1
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
再次查看MySQL的剩余依赖项:
1
dpkg --list|grep mysql
(这里一般就没有输出了,如果有执行下一步)
继续删除剩余依赖项,如:
1
sudo apt-get autoremove --purge mysql-apt-config
2. Centos卸载MySQL
停止服务
1
systemctl stop mysqld
查看已安装的MYSQL相关软件
1
rpm -qa | grep -i mysql
执行删除命令
1
yum remove mysql-community-libs.x86_64 mysql-community-client-plugins.x86_64 mysql-community-client.x86_64 mysql-community-common.x86_64 mysql-community-icu-data-files.x86_64 mysql-community-server.x86_64
查看是否有安装mariadb,如安装了需卸载
- 查看
1
rpm -qa | grep -i mariadb
- 卸载
1
yum remove mariadb
- 查看
查看mysql相关文件
1
find / -name mysql
删除相关的mysql文件
注意: 根据实际情况删除1
rm -rf /var/lib/mysql
4. 操作
- 修改root密码
1
2ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxx';
flush privileges; - 创建数据库
1
create database xxxx charset=utf8;
- 添加远程登录用户
1
create user 'xxxx'@'%' identified with mysql_native_password by 'xxxxx';
- 修改权限
1
grant all on db.table to 'user'@'%';
- 刷新权限
1
flush privileges;










