登录之后首先更新Linux服务器到最新状态
yum -y update
更新之后重启下服务器
reboot
第一步:更新之后查看当前安装mysql情况
rpm -qa|grep -i mysql
可以看到如下图的所示:
显示之前已经安装过了,需要卸载掉重新安装
第二步:停止mysql服务、删除之前安装的mysql
删除命令:rpm -e –nodeps 包名
删除出现提示依赖包错误,则使用以下命令尝试
rpm -e –nodeps 包名 --nodeps
一条条卸载后 /etc/my.cnf 文件不会删除,需要进行手工删除
rm -rf /etc/my.cnf
删除完成后再次查看
rpm -qa|grep -i mysql
第三步:删除之前mysql的文件
输入命令查看:find / -name mysql
再根据: rm -rf 包名
将其删除干净
这样Mysql就清理干净了
第四步:检查系统中是否已经安装了MariaDB
(MariaDB数据库是MySQL数据库的一个分支,一般CentOS 7系统中会默认安装该数据库)
yum list installed | grep mariadb
如果有输入命令: yum remove 包名
进行删除
因为我这儿没有MariaDB数据库 ,所以就在网上找了一个删除MariaDB数据库的命令图片。
这样删除成功之后就可以选择安装了
简单版安装Mysql
1.下载MySql安装包
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
2.安装MySql
yum install -y mysql-server
如果显示以下内容说明安装成功
Complete!
3.设置开机启动Mysql
systemctl enable mysqld.service
4.检查是否已经安装了开机自动启动
systemctl list-unit-files | grep mysqld
如果显示以下内容说明已经完成自动启动安装
mysqld.service enabled
5.启动
systemctl start mysqld.service
6.查看MySql默认密码
grep 'temporary password' /var/log/mysqld.log
如果这里找不到log文件,可以设置root的初始密码
./usr/bin/mysqladmin -u root password 'root'
root账户设置初始密码为root
7.登陆MySql,输入用户名和密码
mysql -uroot -p
8.设置密码的验证强度等级
set global validate_password_policy=LOW;
9.当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6
set global validate_password_length=6;
10.修改当前用户密码
MySQL版本5.7.6版本以前用户可以使用如下命令:
SET PASSWORD = PASSWORD('你的密码');
MySQL版本5.7.6版本开始的用户可以使用如下命令:
ALTER USER USER() IDENTIFIED BY '你的密码';
11.开启远程登录,授权root远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
提示如下错误:ERROR 1064(4200): you have an error in you SQL syntax; **near ‘identified ‘123456’’ at line 1
解决:
运行:GRANT ALL ON *.* TO 'root'@'%'
报错:ERROR 1410 (42000): You are not allowed to create a user with GRANT
解决:update user set host = '%' where user = 'root';
然后更新用户加密方式:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
如果需要支持 root - localhost可以使用插入语句:insert user (user, host, ssl_cipher, x509_issuer, x509_subject) values('root', 'localhost', '', '', '');
12.命令立即执行生效
flush privileges;
如果安装完mysql使用systemctl start mysqld.service 启动
启动mysql报错 203
**方案一:**需要将/usr/lib/systemd/system/mysqld.service
服务迁移至 /etc/systemd/system
重新启动
或者
**方案二:**将/usr/lib/systemd/system/mysqld.service
文件中的 User 和 Group
指定mysql注释
并且将启动命令更改为 ExecStart=/usr/sbin/mysqld --user=root
复杂版安装mysql
mysql 官网 :https://dev.mysql.com/
查询操作系统:
cat /etc/redhat-release
查询系统位数:
uname -m
ldd -version
下载完成之后就可以在Linux中进行安装了
上传安装
1.先安装依赖包
检查系统中是否已经安装了libaio依赖包 :
yum list installed | grep libaio
如果没有安装该依赖包,则进行安装:
yum install libaio
2.检查系统中是否已经安装libnuma依赖包(MySQL 5.7.19及以上版本还需要安装libnuma依赖包):
yum list installed | grep numactl
如没有安装,可使用以下命令进行安装:
yum install numactl
因为 yum 默认安装的libnuma.so.1是32的,这里需要的是64位的,
所以需要删除并安装64位的
删除命令: yum remove libnuma.so.1
安装64命令:yum -y install numactl.x86_64
3.然后在home目录下创建mysql文件夹用来存放安装包
mkdir /home/mysql
4.将下载好的安装包放入文件夹下,我这里用的finalShell直接拉进来
5.完成之后进行解压
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
文件名改成mysql
mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql
6.创建mysql账户
useradd -r mysql
创建成功之后进入到mysql
cd mysql
修改账户权限:
chown -R mysql:mysql ./
查看账户权限
ls -la
7.在mysql目录下安装mysql数据库
bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysql --datadir=/home/mysql/mysql/data
如上图就安装成功了,最后那个就是初始化密码: L!M3sDJS)XIw
8.创建RSA private key,安装SSL
bin/mysql_ssl_rsa_setup --datadir=/home/mysql/mysql/data
执行完成之后会在data目录下生成以下pem文件
这些文件就是用于启用SSL功能的
进入mysql
cd /home/mysql/mysql
修改data目录拥有者为mysql
chown -R mysql:mysql data
配置mysql的my.cnf配置文件
先查找my.cnf文件的位置
locate my.cnf
然后编辑复制下面文本添加到 my.cnf文件中
[client]
port = 3306
default-character-set=utf8
[mysqld]
basedir = /home/mysql/mysql
datadir = /home/mysql/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如果启动失败可以跟换my.cnf内容(路径自行更换):
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
port = 3306
#lower_case_table_names = 1
# server_id = .....
# socket = .....
#lower_case_table_names = 1
max_allowed_packet=32M
default-authentication-plugin = mysql_native_password
#lower_case_file_system = on
#lower_case_table_names = 1
log_bin_trust_function_creators = ON
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
配置mysql服务,执行命令:
cp /home/mycql/mysql/support-files/mysql.server /etc/init.d/mysqld
编辑 /etc/init.d/mysqld文件,执行命令:
vim /etc/init.d/mysqld
启动mysql
service mysqld start
登录mysql,登录密码就之前的初始化密码
./mysql -uroot -p
修改密码
set password=password('root123');
设置远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '访问密码';
#刷新权限
flush privileges;
如果失败就执行下面命令:
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
如果创建报错就执行删除刷新 :drop user 'root'@'%';
flush privileges;
一直重复删除刷新直到可以创建成功
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
开放端口
``
`
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
设置开机启动Mysql
systemctl enable mysqld.service
chkconfig --list #查看自动启动服务列表
chkconfig --add mysql #添加mysql服务到自启服务
chkconfig mysql on #设置自动启动
设置环境变量(将mysql/bin目录设置到环境变量中)
vim /etc/profile #编辑配置文件
mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=
P
A
T
H
:
PATH:
PATH:MYSQL_HOME/bin
source /etc/profile #更新环境变量