1.检查服务器上有没有安装mysql
yum安装方式:
yum list installed mysql*
yum卸载
yum remove 已安装的包
卸载完安装包后,删除安装文件
rm -rf /var/lib/mysql
rm /etc/my.cnf
rpm安装方式
rpm -qa | grep -i mysql
rpm -e mysql57-community-release-el7-10.noarch
rpm -e mysql-community-server-5.7.26-1.el7.x86_64
rpm -e mysql-community-common-5.7.26-1.el7.x86_64
rpm -e mysql-community-client-5.7.26-1.el7.x86_64
rpm -e mysql-community-libs-5.7.26-1.el7.x86_64
cd /var/lib/
rm -rf mysql/
2.下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
3.安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
4.安装mysql
yum -y install mysql-community-server
5.安装完成后可以直接启动mysql
systemctl start mysqld.service
6.如果启动没报错,可以查看mysql服务器启动状态
systemctl status mysqld.service
如果出现下图所示,则说明mysql启动正常
7.获取数据库安装时生成的临时密码
grep "password" /var/log/mysqld.log
临时密码如上图所示
如果执行命令后,没有输出信息,获取不到临时密码
执行如下命令
rm -rf /var/lib/mysql
重启msyql服务
systemctl restart mysqld
再次执行获取密码的命令
8.修改root用户密码
使用临时密码登录mysql
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
9.设置mysql参数
vim /etc/my.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8mb4
[mysqld]
port=3306
socket=/var/lib/mysql/mysql.sock
#数据保存目录
datadir = /data/mysql
#开启binlog日志
server-id=1
log-bin=/data/mysql/mysql-bin
#数据库最大连接数
max_connections=1000
#非交互模式下空闲时间
wait_timeout=600
#交互模式下空闲时间
interactive_timeout=1800
#指定在网络传输中一次消息传输量的最大值
max_allowed_packet=512M
# 开启慢查询日志
slow_query_log = ON
# 慢查询日志存放路径
slow_query_log_file=/data/mysql/mysql_slow.log
# 超过10秒的查询,记录到慢查询日志,默认值10
long_query_time = 10
#禁止使用符号链接
symbolic-links=0
innodb_buffer_pool_size=4G
#STRICT_TRANS_TABLES在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
#NO_AUTO_CREATE_USER禁止GRANT创建密码为空的用户
#ERROR_FOR_DIVISION_BY_ZERO在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
#innodb_use_sys_malloc=0
#innodb_log_file_size=5242880
#设置client连接mysql时的字符集,防止乱码
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
#服务器编码
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
#跳过mysql程序起动时的字符参数设置 ,使用服务器端字符集设置
skip-character-set-client-handshake=1
#表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=1
[mysqld_safe]
#错误日志目录
log-error = /data/mysql/mysql-error.log
pid-file = /var/lib/mysql/mysql.sock
10.设置mysql可以被远程用户访问
grant all privileges on *.* to root@"%" identified by "new password";