首页 > 数据库技术 > 详细

mysql安装

时间:2021-02-28 21:41:45      阅读:28      评论:0      收藏:0      [点我收藏+]

MYSQL 安装

YUM安装 (5.5版本)

Yum 安装方法很简单,执行命令如下即可:

Centos6: yum install –y mysql-server mysql-devel mysql  
Centos7: yum install –y mariadb mariadb-devel mariadb-server 

安装完成之后可以查询一下软件是否安装成功:

[root@localhost ~]# rpm -qa|grep mariadb 

mariadb-libs-5.5.60-1.el7_5.x86_64

mariadb-server-5.5.60-1.el7_5.x86_64

mariadb-5.5.60-1.el7_5.x86_64

mariadb-devel-5.5.60-1.el7_5.x86_64

Mariadb 和 mysql 数据库软件命令和配置都是类似的。

源码安装(5.5版本)

安装前先检查,如果有mariadb,先卸载。

rpm -qa | grep mariadb

rpm -e --nodeps 上述查询的软件包名称全称

rm /etc/my.cnf

#进入目录
[root@node1 ~]#cd /usr/src 
#下载安装包
[root@node1 ~]#wget http://mirrors.163.com/mysql/Downloads/MySQL- 5.5/mysql-5.5.60.tar.gz 
#解压安装包
[root@node1 ~]#tar xf mysql-5.5.60.tar.gz 
#进入目录
[root@node1 ~]#cd mysql-5.5.60/ 
#先yum安装依赖
[root@node1 ~]#yum install gcc ncurses-devel libaio bison gcc-c++ git cmake ncurses-devel ncurses -y
#进入预编译
[root@node1 ~]#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/usr/local/mysql55/ -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BIG_TABLES=1 -DWITH_DEBUG=0
#生成并安装
[root@node1 ~]#make  && make install 
#复制得配置文件
[root@node1 ~]#cp support-files/my-large.cnf /usr/local/mysql55/my.cnf 
#复制服务
[root@node1 ~]#cp support-files/mysql.server /etc/init.d/mysqld 
#增加权限
[root@node1 ~]#chmod +x  /etc/init.d/mysqld 
#创建目录
[root@node1 ~]#mkdir -p /data/mysql 
#创建mysql用户
[root@node1 ~]#useradd -s /sbin/nologin mysql 
#改变目录权限给mysql.mysql
[root@node1 ~]#chown -R mysql. /data/mysql 
#初始化
/usr/local/mysql55/scripts/mysql_install_db --user mysql --datadir /data/mysql --basedir /usr/local/mysql55 
#启动服务进程
[root@node1 ~]#/etc/init.d/mysqld start 
#加入service服务
[root@node1 ~]#chkconfig --add mysqld
[root@node1 ~]#chkconfig --level 35 mysqld on
[root@node1 ~]#service mysqld restart
#检查服务启动
[root@node1 ~]#ps -ef | grep mysql
#可以把服务加入开机启动
[root@node1 ~]#systemctl enable mysqld
#启动mysql数据库
[root@node1 ~]#/usr/lcoal/mysql55/bin/mysql
#启动MySQL数据库方法
1.alias变量
[root@node1 ~]#alias mysql=/usr/local/mysql55/bin/mysql
2.echo export
[root@node1 ~]#echo "export PATH=/usr/local/mysql55/bin:$PATH" > /etc/profile.d/mysql.sh 
[root@node1 ~]#. /etc/profile.d/mysql.sh(source /etc/profile.d/mysql)
3.永久生效之当前用户
[root@node1 ~]#vim ~/.bash_profile
PATH=$PATH:$HOME/bin之后加入:/usr/local/mysql55/bin,变成(注意中间用“:”间隔)
PATH=$PATH:$HOME/bin:/usr/local/mysql55/bin
[root@node1 ~]#source ~/.bash_profile
4.永久生效之所有用户
[root@node1 ~]#vim /etc/profile
在最后添加一行:PATH=$PATH:/usr/local/mysql55/bin
[root@node1 ~]#source /etc/profile

源码mysql5.7安装

#安装依赖
yum install gcc ncurses-devel libaio bison gcc-c++ git cmake  openssl openssl-devel -y 
#下载boost包  Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护
wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz 
#解压
[root@node1 ~]#tar xf boost_1_59_0.tar.gz 
#移动至规划目录
[root@node1 ~]#mv boost_1_59_0 /usr/local/boost 
#下载mysql安装包
[root@node1 ~]#wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.28.tar.gz 
#进行解压
[root@node1 ~]#tar xf  mysql-5.7.28.tar.gz 
#进入目录
[root@node1 ~]#cd mysql-5.7.28 
#进行预编译
[root@node1 ~]#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DMYSQL_DATADIR=/usr/local/data/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0 -DWITH_BOOST=/usr/local/boost
#生成并安装
[root@node1 ~]#make && make install 
#创建目录
[root@node1 ~]#mkdir -p /data/mysql57 
#增加mysql用户
[root@node1 ~]#useradd -s /sbin/nologin mysql 
#更改目录权限
[root@node1 ~]#chown -R mysql. /data/mysql57 
#复制得服务
[root@node1 ~]#cp support-files/mysql.server /etc/init.d/mysqld57 
#增加执行权限
[root@node1 ~]#chmod +x  /etc/init.d/mysqld57 

mysql5.7的配置文件需要手动

[root@node1 ~]#vim /usr/local/mysql57/my.cnf 
#内容如下:
[mysqld]
basedir=/usr/local/mysql57/    
datadir=/data/mysql57/
port=3307 
pid-file=/data/mysql57/mysql.pid 
socket=/data/mysql57/mysql.sock 
#跳过权限修改即免密登录
skip-grant-tables
[mysqld_safe]
log-error=/data/mysql57/mysql.log
#初始化 
/usr/local/mysql57/bin/mysqld --initialize --user=mysql --datadir=/data/mysql57/ --basedir=/usr/local/mysql57
#--initialize会创建一个临时密码
#--initialize-insecure
#或者执行:mysql_secure_installation进行初始化。
[root@node1 ~]#/etc/init.d/mysqld57 start 
#加入service服务
[root@node1 ~]#chkconfig --add mysqld
[root@node1 ~]#chkconfig --level 35 mysqld on
[root@node1 ~]#service mysqld restart
#检查服务启动
[root@node1 ~]#ps -ef | grep mysql
[root@node1 ~]#netstat -ntlp | grep 3307
#可以把服务加入开机启动
[root@node1 ~]#systemctl enable mysqld
#启动mysql数据库
[root@node1 ~]#/usr/lcoal/mysql57/bin/mysql -uroot -p
#启动MySQL数据库方法
1.alias变量
[root@node1 ~]#alias mysql=/usr/local/mysql57/bin/mysql
2.echo export
[root@node1 ~]#echo "export PATH=/usr/local/mysql57/bin:$PATH" > /etc/profile.d/mysql.sh 
[root@node1 ~]#. /etc/profile.d/mysql.sh(source /etc/profile.d/mysql)
3.永久生效之当前用户
[root@node1 ~]#vim ~/.bash_profile
PATH=$PATH:$HOME/bin之后加入:/usr/local/mysql57/bin,变成(注意中间用“:”间隔)
PATH=$PATH:$HOME/bin:/usr/local/mysql57/bin
[root@node1 ~]#source ~/.bash_profile
4.永久生效之所有用户
[root@node1 ~]#vim /etc/profile
在最后添加一行:PATH=$PATH:/usr/local/mysql57/bin
[root@node1 ~]#source /etc/profile

PS:初始化后的警告信息,如:

2020-12-24T14:07:33.199185Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-12-24T14:07:33.729148Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-12-24T14:07:33.863738Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-12-24T14:07:33.922544Z 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: 5e7704d4-45f1-11eb-a3aa-000c29664ca0.
2020-12-24T14:07:33.923636Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed‘ cannot be opened.
2020-12-24T14:07:34.329282Z 0 [Warning] CA certificate ca.pem is self signed.
2020-12-24T14:07:34.460461Z 1 [Note] A temporary password is generated for root@localhost: hr)aUgzQ?9W+

/usr/local/mysql57/bin/mysql -p输入临时密码进入

#取消跳过密码检查
[root@node1 ~]#/etc/init.d/mysql57 stop
[root@node1 ~]#vim /usr/local/mysql57/my.cnf
[mysqld]
#skip-grant-tables 把这行删除或注释掉
#重新启动
[root@node1 ~]#/etc/init.d/mysql57 start
#修改密码
mysql>alter user ‘root‘@‘localhost‘ identified by ‘admin‘;
#或者
mysql>alter user user() identified by "123";
#修改密码为空或密码
mysql>update mysql.user set authentication_string=password(‘‘) where user="root";
[root@node1 ~]#mysql -uroot -p  #输入新密码admin进入即可

修改密码

1、密码为空或者已知当前密码

方法一:用SET PASSWORD命令

首先登录MySQL 
格式:mysql> set password for 用户名@localhost = password(‘新密码‘);  
范例: 
mysql> set password for root@localhost = password(‘123‘); 

方法二:在shell终端执行:

mysql -uroot -p -e "set password for  root@localhost=password(‘123‘);" 
ps:注意双引号和单引号!!! 

方法三:在shell终端用mysqladmin

格式:mysqladmin -u用户名 -p旧密码 password 新密码 
范例: 
mysqladmin -uroot -p123456 password 123 

方法四:用UPDATE直接编辑user表

 首先登录MySQL
 mysql> use mysql; 
 mysql> update user set password=password(‘123‘) where  user=‘root‘ and host=‘localhost‘; 
 mysql> flush privileges; 

2、忘记密码

#yum安装的mysql

可执行使用/usr/bin/mysqld_safe --user=mysql --skip-grant- tables & 
然后用mysql命令进入修改密码: 
update mysql.user set password=password(‘‘) where  user="root" and host="localhost"; 
或者: 
update mysql.user set  authentication_string=password("123456") where user="root"  and host="localhost" ; 
flush privileges; 

mysql报错信息

1、启动错误

Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/node1.pid).

是因为系统有/etc/my.cnf,所以报错,这个也许是系统自动由mariadb产生的。找到源码配置文件,指定数据文件路径比如为datadir=/data/mysql即可。或者mv /etc/my.cnf /tmp/即可。

2、连接数据库失败

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

或者ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)

找不到套接字,怎么找?

[root@node3 ~]# ps -ef |grep mysqld

root      5165     1  0 21:22 pts/0    00:00:00 /bin/sh

/usr/local/mysql55/bin/mysqld_safe --datadir /data/mysql --pid-file /data/mysql/node3.pid

mysql     5536  5165  0 21:22 pts/0    00:00:01

/usr/local/mysql55/bin/mysqld --basedir /usr/local/mysql55 --datadir /data/mysql --plugin- dir /usr/local/mysql55/lib/plugin --user mysql --log- error /var/log/mariadb/mariadb.log --pid-

file /data/mysql/node3.pid --socket /tmp/mysql.sock --port 3306

解决方案一:

[root@node3 ~]# mysql -S /tmp/mysql.sock

解决方案二: 虽然我们在my.cnf指定了socket,但linux还是从/tmp/下面去找,那么就链接过去吧。

[root@node3 ~]# ln -s /data/mysql57/mysql.sock /tmp/mysql.sock

解决方案三:在当前shell有效。

echo "export PATH=/usr/local/mysql55/bin:$PATH" > /etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh (#.后面有空格哦!或者source /etc/profile.d/mysql.sh)

3、登录错误

[ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)]

安装完成以后,用/usr/local/mysql57/bin/mysql -uroot -p登录报错

[root@localhost ~]# /usr/local/mysql57/bin/mysql -uroot -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

[root@localhost ~]# /usr/local/mysql57/bin/mysql -uroot
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

[root@localhost ~]# /usr/local/mysql57/bin/mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

[root@localhost ~]# /usr/local/mysql57/bin/mysql
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

错误原因1:用户名和密码输入错误

如果确定是这个错误,重新输入下用户名和密码就行了。 如果用户名和密码忘记了,不要慌,参考下面

首先进入到 my.cnf里面添加一个跳过权限验证的命令

vim /etc/my.cnf

在[mysqld]下面

添加skip-grant-tables,这样再次登陆就不用输入密码,保存重启服务后直接回车就进入数据库了。

然后进入到mysql数据库

use mysql; --注意后面分号

show tables;

可以看到有一张user表,这个表里面就存的用户的登陆信息,我们查看一下user表里面都有啥字段

desc user;

技术分享图片

然后使用命令直接修改密码就行了,这里我修改root用户密码为123456为例

update user set authentication_string=password(‘123456‘) where user=‘root‘;

然后退出mysql,重启mysql服务

quit;

service mysqld restart

再次使用用户名和密码登陆即可。

错误原因2:root用户权限不足导致的

这个我参考博客设置的。

根据上一个问题原因设置skip-grant-tables 后,进入数据库使用如下命令即可

grant all privileges on . to ‘root‘@‘%‘ identified by ‘123456‘;

root是登陆用户,%代表的是所有ip地址都能访问, 最后就是密码。 grant是同意的意思,privileges是特权的意思,这句话就是授予root用户能在任何ip使用123456密码访问。

mysql安装

原文:https://www.cnblogs.com/itservices/p/14459731.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!