安装MySQL
1、下载.tar.gz的安装包(mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz),并将安装包用ftp上传到服务器
注意:下载M有DSQL的版本是5.7的。根据自己电脑的规格,选择64位或32位的。
用ftp软件将tar.gz安装包上传到服务器
2、检查是否安装mariadb,有则卸载
是否安装某软件: rpm -qa |grep软件名
卸载软件:yum remove 完整软件名
(在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。)
3、解压文件,修改目录名方便配置
[root@XXX]# mkdir /opt/mysql //新建目录
[root@XXX]#tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql //解压文件,并将解压后的目录设为 /opt/mysql
。。。
[root@XXX]# cd/opt/mysql //切换到/opt/mysql目录下
[root@XXX]#lsmysql-5.7.31-linux-glibc2.12-x86_64
[root@XXX]#mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql-5.7.31 //修改目录名为mysql-5.7.31[root@XXX]#lsmysql-5.7.31
注解:
/opt : 这是给主机额外安装软件所摆放的目录。
4、在 /usr/local/ 目录下创建 /opt/mysql-5.7.31的软连接(软连接 相当于Window系统下的快捷方式)
[root@XXX]#cd /usr/local //切换目录ls //查看目录下的文件和目录aegis curl games lib libexec man ln -s /opt/mysql/mysql-5.7.31 /usr/local/mysql //创建软连接
[root@XXX local]#lsaegis curl games lib libexecmanmysql openssl share
bin etc include lib64 libiconv mongodb nginx sbin src
5、 添加 mysql 用户,修改mysql目录权限,并用此用户执行应用
[root@lushangg bin]# useradd -s /bin/false -M u_mysql //添加账号 ,-s Shell文件 指定用户的登录Shell ,-m 使用者目录如不存在则自动建立
[root@lushangg bin]# groupadd g_mysql //添加用户组
[root@lushangg bin]#chown -R u_mysql:g_mysql /opt/mysql/mysql-5.7.31 //chown将指定文件的拥有者改为指定的用户或组,-R 递归操作文件和目录
6、在 /etc/下创建my.cnf配置文件
#组包含了mysqld 服务启动的参数,它涉及的方面很多,其中有MySQL的目录和文件,通信、网络、信息安全、内存管理、>优化、查询缓存区、还有MySQL日志设置等
[mysqld]#binlog 配置
log-bin = /usr/local/mysql/logs/mysql-bin.log #logbin数据库的操作日志,如添删改等都会存储到binlog日志,通过logbin可以实现增量恢复
expire-logs-days = 14 #超过14天的binlog,mysql程序回自动删除
max-binlog-size = 500M #二进制日志文件的最大长度为500M(默认为1G),超过后会自动提供新的文件续上
server-id = 1 #表示本机的序列号为 1
basedir = /opt/mysql/mysql-5.7.31 #MySQL程序存放路径,常用于存放MySQL启动、配置文件、日志
datadir =/opt/mysql/mysql-5.7.31/data #MySQL数据存放文件路径(很重要)
socket = /usr/local/mysql/mysql.sock #用户在linux/Unix环境下客户端连接可以不通过TCP、Ip网络而直接使用unix socket连接 MySQL
user = u_mysql #mysql_safe 脚本使用MySQL运行用户
default-storage-engine = InnoDB #默认存储引擎
character-set-server = utf8 #数据库和数据库表的默认字符集。
lower_case_table_names = 1 #实现MySQL不区分大小
explicit_defaults_for_timestamp = true #显示默认时间戳
[mysqld_safe]
log-error = /usr/local/mysql/mysql-error.log #报错日志
pid-file = /usr/local/mysql/mysqld.pid #父id 文件
[client]#客户端
socket = /usr/local/mysql/mysql.sock
[mysql]
default-character-set = utf8 #客户端字符集 (控制 character_set_client、character_set_connection、character_set_results)
socket = /usr/local/mysql/mysql.sock
7、创建文件
[root@lushangg mysql]# mkdir /usr/local/mysql/logs // 创建日志目录
[root@lushangg mysql]#chown u_mysql:g_mysql /usr/local/mysql/logs //指定目录的拥有者
[root@lushangg mysql-5.7.31]# touch /opt/mysql/mysql-5.7.31/mysql-error.log //创建错误日志文件
[root@lushangg mysql-5.7.31]# chown u_mysql:g_mysql /opt/mysql/mysql-5.7.31/mysql-error.log //指定文件的拥有者
8、安装MySQL
[root@lushangg /]# cd /opt/mysql/mysql-5.7.31 //切换目录[root@lushangg mysql-5.7.31]# bin/mysqld --initialize --user=u_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
9、保存密码
2021-02-02T07:59:44.323226Z 1 [Note] A temporary password is generated for root@localhost: XXX
10、拷贝启动程序,将mysql 的启动程序拷贝到 /etc/init.d/目录下
[root@lushangg support-files]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
11、启动mysql服务
[root@lushangg data]# service mysqld start
Starting MySQL. SUCCESS!
12、配置环境变量
vim /etc/profile
最后一行追加
#mysql
export MYSQL_HOE=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
13、开机自启
vi /etc/rc.local
#追加一行
systemctl start mysqld.service
14、重置密码,这里输入上面步骤9 中记录的密码
[root@lushangg mysql]# mysql -u root -p
Enter password: XXX
mysql> set password =password('123456'); //设置密码
Query OK,0 rows affected, 1 warning (0.00sec)
mysql> alter user 'root'@'localhost'password expire never;
Query OK,0 rows affected (0.00sec)
mysql>flush privileges; //刷新
Query OK,0 rows affected (0.00sec)
mysql> show databases; //查看数据库
15、设置允许远程登陆
mysql>use mysql;
Reading table informationforcompletion of table and column names
You can turn off this feature to get a quicker startup with-A
Database changed
mysql> update user set host ='%' where user = 'root';
Query OK,1 row affected (0.01sec)
Rows matched:1 Changed: 1 Warnings: 0mysql>flush privileges;
Query OK,0 rows affected (0.01 sec)
如果还不能连接mysql,重启mysql 即可。
service mysql restart
16、使用 Navicat 连接