mysql安装
mysql安装
清明节明明放了三天,却感觉一回家就结束了,今天又把时间放在了一些小知识点上,不能收整为一篇,所以,我掐指一算,今晚宜发历史存货...
一、yum版
[root@mysql ~]# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
[root@mysql ~]# userdel -r mysql
[root@mysql ~]# rm -rf /etc/my*
[root@mysql ~]# rm -rf /var/lib/mysql
下载yum源的rpm安装包
[root@mysql ~]# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@mysql ~]# vim /etc/yum.repos.d/mysql-community.repo
把安装5.7的源打开, 关闭安装8.0的源
这里有第二种修改的方法,方便我们使用脚本修改
[root@mysql ~]# yum repolist all |grep mysql
[root@mysql ~]# yum-config-manager --disable mysql80-community
[root@mysql ~]# yum-config-manager --enable mysql57-community
#关闭防火墙和selinux
[root@mysql ~]# sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config && setenforce 0
[root@mysql ~]# systemctl stop firewalld && systemctl disable firewalld
#安装必要的软件包
[root@mysql ~]# yum -y groupinstall "Development Tools"
[root@mysql ~]# yum -y install mysql-community-server
[root@mysql ~]# systemctl start mysqld && systemctl enable mysqld
从日志中找出密码(有可能没有密码)
[root@mysql ~]# grep "password" /var/log/mysqld.log
2018-12-26T22:41:24.218413Z 1 [Note] A temporary password is generated for root@localhost: %i+g10uS.dre
#登陆数据库
[root@mysql ~]# mysql -uroot -p'%i+g10uS.dre'
修改密码方法2:mysqladmin
# [root@localhost ~]# mysqladmin -u root -p'-ojEtMaGU0zN' password 'QianFeng@123'
补充:
[root@mysql ~]# vim /etc/my.cnf
# 关闭mysql密码强度策略,生产环境切勿尝试,首次启动不可关闭
validate-password=OFF
# 跳过密码进入数据库,用于忘记密码时使用
skip-grant-tables
# 之前的博客中写了如何用两种方法更改密码,这里不赘述。
二、源码版
##所需要的依赖及安装mysql的包
[root@mysql_source ~]# yum -y groupinstall "Development Tools"
[root@mysql_source ~]# yum -y install ncurses ncurses-devel openssl-devel bison libgcrypt gcc gcc-c++ make cmake
bison Linux下C/
ncurses:字符终端处理库
[root@mysql_source ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz
##在系统中添加运行mysqld进程的用户mysql
[root@mysql_source ~]# groupadd mysql
[root@mysql_source ~]# useradd -M -g mysql -s /sbin/nologin mysql
##在系统中添加自定义mysql数据库目录及其他必要目录
[root@mysql_source ~]# mkdir -p /usr/local/{data,mysql,log,tmp}
[root@mysql_source ~]# chown -R mysql:mysql /usr/local/{data,mysql,log,tmp}
##将mysql-boost-5.7.24.tar.gz解压到当前目录,并执行部署操作
[root@mysql_source ~]# tar xf mysql-boost-5.7.24.tar.gz
[root@mysql_source ~]# cd mysql-5.7.24
[root@mysql_source mysql-5.7.24]# cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-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
提示:boost也可以使用如下指令自动下载,如果不下载bost压缩包,把下面的这一条添加到配置中第二行
-DDOWNLOAD_BOOST=1/
参数详解:
-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 \ 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 默认的存储引擎,支持外键
[root@mysql_source mysql-5.7.24]# echo $?
0
[root@mysql_source mysql-5.7.24]# make -j `
......
[100%] Built target udf_example
[root@mysql_source mysql-5.7.24]# echo $?
0
[root@mysql_source mysql-5.7.24]# make install
......
-- Installing: /usr/local/mysql/support-files/mysql.server
[root@mysql_source mysql-5.7.24]# echo $?
0
[root@mysql_source mysql-5.7.24]#
Congratulations Complete!
##初始化MySQL安装配置
1.提升MySQL命令为系统级别命令
[root@mysql_source ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile
[root@mysql_source ~]# source /etc/profile
2.拷贝默认配置文件至/etc/my.cnf中
[root@mysql_source mysql]# chown -R mysql.mysql /usr/local/mysql
[root@mysql_source ~]# cd /usr/local/mysql/mysql-test/include
[root@mysql_source include]# cp /etc/{my.cnf,my.cnf.bak}
[root@mysql_source include]# vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql # 安装目录
datadir = /usr/local/data # 数据存放目录
tmpdir = /usr/local/tmp # /tmp缓存目录
socket = /usr/local/tmp/mysql.sock # 指定socket文件的位置
pid_file = /usr/local/tmp/mysqld.pid # 指定pid文件的位置
log_error = /usr/local/log/mysql_error.log # 错误日志的位置
slow_query_log_file = /usr/local/log/slow_warn.log # 慢日志查询
server_id = 1 # server-id=??
user = mysql # 指定用户
port = 3306 # 指定端口
bind-address = 0.0.0.0 # 监听地址(允许所以ip访问)
character-set-server = utf8 # 字符集
default_storage_engine = InnoDB # 引擎
3.执行数据库服务初始化操作
[root@mysql_source mysql]# mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql'
4.启动mysqld服务
[root@mysql_source mysql]# mysqld_safe --defaults-file=/etc/my.cnf &
[1] 25705
2019-8-18T09:19:35.334751Z mysqld_safe Logging to '/usr/local/log/mysql_error.log'.
2019-8-18T09:19:35.379829Z mysqld_safe Starting mysqld daemon with databases from /usr/local/data
5.设置mysql.socket软链接到mysql命令指定的目录中
[root@mysql_source ~]# ln -s /usr/local/tmp/mysql.sock /tmp/mysql.sock
6.配置mysqld服务的管理工具(便于启动)
[root@mysql_source support-files]# cd /usr/local/mysql/support-files
[root@mysql_source support-files]# cp mysql.server /etc/init.d/mysqld
[root@mysql_source support-files]# chkconfig --add mysqld
[root@mysql_source support-files]# chkconfig mysqld on
##登录数据库并进行更改密码
[root@mysql_source mysql]# grep "password" /usr/local/log/mysql_error.log
2019-8-18T09:18:34.214401Z 1 [Note] A temporary password is generated for root@localhost: ejhszb2:m3wJ
[root@mysql_source tmp]# mysql -uroot -p"ejhszb2:m3wJ"
三、杂糅版
[root@zhangyang tmp]# yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7
62 tar -xf mysql-5.7.36-linux-glibc2.12-x86_64.tar
163 ls
164 tar -xf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
165 rm -rf mysql-5.7.36-linux-glibc2.12-x86_64.tar
166 rm -rf mysql-test-5.7.36-linux-glibc2.12-x86_64.tar.gz
167 ls
168 cd mysql-5.7.36-linux-glibc2.12-x86_64/
169 ls
170 useradd -M mysql -s /sbin/nologin
173 mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.36
174 cd /usr/local/
175 cd mysql-5.7.36/
179 vim /etc/my.cnf
180 mkdir -p /data/mysql-5.7.36
183 echo "export PATH=$PATH:/usr/local/mysql-5.7.36/bin" >> /etc/profile
184 source /etc/profile
187 mysql # 确认已经有了命令
188 mysqld --initialize-insecure --user=mysql
189 vim /etc/my.cnf
190 mysqld --initialize-insecure --user=mysql
191 ll /data/mysql-5.7.36/
192 cp /usr/local/mysql-5.7.36/support-files/mysql.server /etc/init.d/mysqld
193 /etc/init.d/mysqld start
196 chkconfig --add mysqld
198 chkconfig --list
以上。
本文作者:Tanuki_11
本文链接:https://www.cnblogs.com/tanukisama/p/16103598.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步