CentOS7 下安装mysql
1. tar -zxf mysql-5.7.27-el7-x86_64.tar.gz -C /usr/local/ , 解压到/usr/loca/下,当然不一定非得这 个路径下。
2. cd /usr/local/
mv mysql-5.7.27-el7-x86_64/ mysql, 重命名。
3. 在mysql新建data文件夹用于存储mysql数据文件。cd mysql/ mkdir data
4. 创建mysql用户和用户组:
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql/
-r 表示系统用户, -s指定shell,/sbin/nologin 表示不能用于登录,-d指定用户登入时的目录。
-g指定用户组(mysql),第二个mysql是用户名。
5. chown -R mysql:mysql /usr/local/mysql/,文件属主改为mysql用户
6. ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ mysql_install_db已经被抗议了
所以用:./mysqld --initialize --datadir=/usr/local/mysql/data --user=mysql --basedir=/usr/local/mysql
执行后如果报错为:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
表示没有安装libaio,安装即可:yum -y install libaio
7.进入${MYSQL_HOME}/support-files,将msyql.server拷贝到系统服务目录中,cp -a ./mysql.server /etc/init.d/mysqld,mysqld是重命名后的文件 (R<:l3yi<;9l
8.在${MYSQL_HOME}下新建my.cnf文件内容如下:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
symbolic-links=0
max_connections=200
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=32M
explicit_defaults_for_timestamp=true
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
注意:mysql连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock,这个socket路径不要修改,不然连本地mysql的时候回报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
因为my.cnf中配置了log-error、pid-file路径,因此需要在/var/log/、/var/run/创建mysql目录,并且给mysql用户全部的权限(chmod)
chmod -R 777 /var/log/mysql/
chmod -R 777 /var/run/mysql/
9.service mysqld start启动mysql服务。
9.1.就是mysql.server启动文件,该文件所处路径 在解压包的support-files文件夹内,如果不修改的话启动会报错
从if test -z "$basedir"开始找起,修改成mysql实际的解压路径。
10.cat /root/.mysql_secret,查看mysql的root用户的初始密码(qseMNBej/;f?)
11.mysql -u root -p来登录,输入上边的密码,发现不好用,解决方案如下:
11.1 修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables
11.2 service mysqld restart后(必须在/etc/init.d/下执行),即可直接用mysql进入
11.3 mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
mysql> flush privileges;
mysql> quit;
11.4 将/etc/my.cnf文件还原,重新启动mysql:service mysql restart,这个时候可以使用mysql -u root -p '123qwe'进入了
11.5 mysql>SET PASSWORD = PASSWORD('mysql'); 设置新密码
11.6 mysql>quit;退出
12.mysql> create database nacos; 以下操作如果是win系统的话,只需要客户端操作即可,当然linux也可以,这里没用是网不通的原因TT
mysql>use nacos;
mysql>把nacos的建表脚本粘到这里执行即可。
mysql>quit;
13.grant all privileges on *.* to 'root' @'%' identified by 'libin';用于windows用navicat等客户连接mysql,开启全部权限,默是不接受外部连接的。libin是密码
flush privileges;