LInux下安装Mysql

一、mysql简单介绍

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,所以你不需要支付额外的费用。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的 SQL 数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。
  • MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
  • MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
  • MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。

二、mysql正式安装

1、检查是否已安装mysql文件

# rpm -ef | grep mysql 
# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

2、删除mysql文件

查找所有对应的mysql文件夹,rm:删除,一定要放  whereis/find 查找出来的路径。

# whereis mysql 
# find / -name mysql
# rm -rf /ysr/bin/mysql 
# whereis mysql
# find / -name mysql

3、检查mysql用户组和用户是否存在没有则创建

# cat /etc/group | grep mysql
# cat /etc/passwd | grep mysql
# groupadd mysql
# useradd -r -g mysql mysql

4、mysql下载并解压

1)Window在mysql官网下载(如果是在window下载的话可能是 .xz 后缀,解决方案如下)

# xz -d mysql.tar.xz
# tar -xvf mysql.tar

2)Linux中下载(推荐)

# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 
# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql 

5、在mysql文件下创建data(用来存放数据库的文件)

# mkdir data

6、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

# chown -R mysql:mysql /usr/local/mysql
# chown -R 755 /usr/local/mysql

7、初始化mysql

1)记住初始化输出日志末尾的密码,数据库管理员临时密码,后面登录要用,我这里是pralyyt_8#U(warning不用管)。

# cd /usr/local/mysql/bin
# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

2019-11-22T09:24:00.672948Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-11-22T09:24:01.709990Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-11-22T09:24:01.862021Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-11-22T09:24:01.936826Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: d21f80df-0d09-11ea-861d-fa163eb93a5f.
2019-11-22T09:24:01.940606Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-11-22T09:24:01.941294Z 1 [Note] A temporary password is generated for root@localhost: pralyyt_=8#U

2)初始化失败出现:mysqld: error while loading shared libraries: libaio.so.l: cannot open..... or directory 

解决方案:没有存在 libaio,重新安装一下,再继续初始化

# rpm -qa|grep libaio
# yum install  libaio-devel.x86_64
# yum -y install numactl

8、配置文件myt.cof,加上如下

vi 进去之后点击 i ,就可以看到 my.cof 中的信息,添加后按 Esc 输入 :wq 保存退出

# vi etc/my.cof

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1

9、启动服务

# /usr/local/mysql/support-files/mysql.server start
# service mysqld start   |   service mysqld stop

1)如果出现:Starting MySQL... ERROR! The server quit without updating PID file,找到mysql进程在kill掉

# ps -ef | grep mysql
# kill -9 PID

10、添加软连接

1)出现:-bash: cd: mysql: Not a directory不用管它,说明已经存在了

# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
# service mysql restart 

三、mysql 登录

1、输入如下进行登录mysql

# mysql -u root -p

1)如果出现这种错误说明你的密码过期了!需要跳过密码登录

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
在my.cof中加上如下(修改完密码后删除)

# vi etc/my.cof

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
skip-grant-tables

2、修改密码并刷新

1)这样下次登录时用这个新密码(最好是先看一下密码是拿一列,有一些版本存放密码的列是 password

use mysql; 
update user set authentication_string=password('root') where user='root';
flush privileges;

3、开放远程连接

为了方便可以下载一个 Navicat 工具(SQLyog、PhpMyadmin、Workbench等)

use mysql;
update user set user.Host='%' where user.User='root'; 
flush privileges;

4、设置开机自动启动

(cope到init.d下,赋予权限,添加服务,显示服务列表)

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --list

4、出现过的一些错误记录

1)ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

在 my.cof 中 添加 socket=/tmp/mysql.sock ,在添加软链接

# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
# netstat -anp | more    查看端口号

2)1862 your password has expired   解决方案,检查服务是否打开重启

 

 

 

参考文档:

https://www.jianshu.com/p/276d59cbc529

https://www.runoob.com/mysql/mysql-tutorial.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值