一、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 解决方案,检查服务是否打开重启
参考文档: