这是我在腾讯云上安装mysql的一些记录
系统版本:CentOS Linux release 7.4.1708 (Core)
mysql版本:mysql-5.7.25-linux-glibc2.12
一、安装前:
1.1 检查linux系统版本:[root@VM_0_14_centos ~]# cat /etc/system-release
1.2 检查是否安装了mysql:[root@VM_0_14_centos ~]# rpm -qa | grep mysql (我机子安装了mysql后再执行该命令,还是什么都没找到。。。)
卸载已安装的mysql:[root@VM_0_14_centos ~]# rpm -e --nodeps mysql
二、下载、安装mysql
2.1 软件来源:
[root@VM_0_14_centos ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
或者:链接:https://pan.baidu.com/s/17CyWUAL3cKJ8WK-haFiGtA 提取码:pv68
2.2 解压安装包、重命名为mysql并将其移动至/usr/local/mysql
2.3 添加系统用户
添加 mysql 组和 mysql 用户:
添加 mysql 组:[root@VM_0_14_centos ~]# groupadd mysql
添加 mysql 用户:[root@VM_0_14_centos ~]# useradd -r -g mysql mysql
扩展:
查看是否存在 mysql 组:[root@VM_0_14_centos ~]# more /etc/roup | grep mysql
查看 msyql 属于哪个组:[root@VM_0_14_centos ~]# groups mysql
查看当前活跃的用户列表:[root@VM_0_14_centos ~]# w
2.3 检查是否安装libaio
[root@VM_0_14_centos ~]# rpm -qa | grep libaio
若没有则安装
版本检查:[root@VM_0_14_centos ~]# yum search libaio
安装:[root@VM_0_14_centos ~]# yum -y install libaio
2.4 安装mysql
创建mysql配置文件:
创建/etc/my.cnf 并将并写入配置文件:
[mysql]
# 设置mysql客户端默认字符集 default-character-set=utf8 socket=/usr/local/mysql/mysql.sock [mysqld] #skip-name-resolve #设置3306端口 port = 3306 socket=/usr/local/mysql/mysql.sock # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M在/usr/local/mysql 文件夹内创建data文件夹,用来存放数据
修改当前目录拥有者为 mysql 用户:[root@VM_0_14_centos ~]# chown -R mysql:mysql ./
初始化:[root@VM_0_14_centos mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
初始化后,系统会自动为mysqlroot用户赋予一个临时密码:红圈中就是,一定要记住,第一次登录后要用的
三、配置
4.1 设置开机启动
a. 复制启动脚本到资源目录:[root@VM_0_14_centos mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
b. 增加 mysqld 服务控制脚本执行权限:[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
c. 将 mysqld 服务加入到系统服务:[root@localhost mysql]# chkconfig --add mysqld
d. 检查mysqld服务是否已经生效:[root@localhost mysql]# chkconfig --list mysqld
命令输出类似下面的结果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用 service 命令控制 mysql 的启动和停止。
查看启动项:chkconfig --list | grep -i mysql
删除启动项:chkconfig --del mysql
e. 启动 mysqld:[root@localhost mysql]# service mysqld start
报错:
解决:socket 没找到,八成是/etc/my.cnf中sock配置得有问题, 这样配:socket=/usr/local/mysql/mysql.sock
配置文件改完后再次启动mysql:service mysqld start 就OK了
在登录mysql时再次报错:
执行登录命令时,系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下。
这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:
把mysql安装目录,比如/usr/local/mysql/bin/mysql,映射到/usr/bin目录下:
然后再登录mysql,又报错:
找不到套接字了,首先要知道这个mysql.sock是干嘛的:
连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。
解决:先执行:[root@VM_0_14_centos ~]# find / -name mysql.sock
如果可以查找到, 做个软连接就好了
[root@VM_0_14_centos tmp]# ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock
4.2 配置环境变量:
vim /etc/profile
加上这一句:export PATH = $PATH:/usr/local/mysql/bin
4.3 更改密码、配置允许外网连接:
这时就可以登上去了,但是登陆后无法进行任何操作,且外网也无法连接到该mysql:
改密码三步:
1: SET PASSWORD = PASSWORD('your new password');
2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
3: flush privileges;
设置外网可连:
END!
想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python