mysql的三种安装方式
1、yum 安装
(1)关闭防火墙:
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
(2)安装工具:yum -y install wget
(3)下载:wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm (或者已下载文件后,上传到服务器也可)
(4)修改配置文件:vim /etc/yum.repos.d/mysql-community.repo
把enabled=0/1 改成1,即安装mysql5.7版本。
或者不进入编辑,直接输入以下命令:
yum-config-manager --enable mysql57-community 将禁用的yum源库启用
yum-config-manager --disable mysql80-community 将启用的yum源库禁用
(5)安装数据库:yum install -y mysql-community-server
(6)启动服务:systemctl start mysqld && systemctl enable mysqld
(7)密码找回:grep password /var/log/mysqld.log
我的临时随机密码:qsSDKeriG8(g
(8)登录mysql,修改密码:mysql -uroot -p'qsSDKeriG8(g'
编辑命令改密码为Qazxsw@123:alter user 'root'@'localhost' identified by 'Qazxsw@123';(注意分号)
或者:
直接输入:mysqladmin -u root -p'旧密码' password '新密码'
(9)若忘记密码
vim /etc/my.cnf
[mysqld] #在mysqld标签下
skip-grant-tables #添加这一行,跳过密码验证
#意思就是跳过授权表,即可以跳过密码验证直接进入数据库
重启后生效:systemctl restart mysqld
不需要输入密码即可登录:mysql -uroot -p
2、编译安装(源码安装)
源码安装好处:
a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b) 根据不同的软件平台环境调整相关的编译参数;
c) 针对我们特定应用场景选择需要什么组件不需要什么组件;
d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集(utf-8);
e) 同一台主机上面可以安装多个MySQL;
在源码安装不足:(存在隐患)
a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长;
(1)清理安装环境
yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql
rm -rf /etc/my*
rm -rf /var/lib/mysql
(2)创建mysql用户
useradd -r mysql -M -s /bin/false
-r 参数表示创建系统用户。系统用户不需要登录shell。并且会分配高的UID号
mysql 指定要创建的用户账号名。
-M 参数表示不创建用户主目录。
-s 参数指定用户的登录shell,/bin/false 表示不允许登录。
(3)从官网上下载tar包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.34.tar.gz
(4)安装编译工具
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
(5)创建mysql目录:mkdir -p /usr/local/mysql
(6)解压:tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
(7)切换位置:cd /usr/local/mysql-5.7.27/
(8)修改配置文件:cmake . \ (输入以下内容)
-DWITH_BOOST=boost/boost_1_59_0/
#-DDOWNLOAD_BOOST=1 \(如果boost不能下载,取消注释,重新运行)
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DSYSCONFDIR=/etc
-DMYSQL_DATADIR=/usr/local/mysql/data
-DINSTALL_MANDIR=/usr/share/man
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DDEFAULT_CHARSET=utf8
-DEXTRA_CHARSETS=all
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_EMBEDDED_SERVER=1
-DENABLED_LOCAL_INFILE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
(9)编译:make && make install(大约30分钟)
(10)初始化(只需一次)
cd /usr/local/mysql
chown -R mysql.mysql .
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#指定--user=mysql:指定mysqld服务器运行的用户为mysql
#--basedir=/usr/local/mysql:指定MySQL的安装目录
#--datadir=/usr/local/mysql/data:指定MySQL数据文件存放的目录
#初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码!!!
(11)编译Mysql配置文件:vim /etc/my.cnf
[client]
port = 3306 (客户端默认连接端口)
socket = /tmp/mysql.sock (用于本地连接的socket套接字)
default-character-set = utf8 (编码)
[mysqld]
port = 3306 (服务端口号,默认3306)
user = mysql (mysql启动用户)
basedir = /usr/local/mysql #(指定安装目录)
datadir = /usr/local/mysql/data (数据文件存放位置)
socket = /tmp/mysql.sock (为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件)
character_set_server = utf8 (数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)