linux下mysql安装、远程访问、乱码问题

1、安装

1、官网下载安装
linux下mysql安装、远程访问、乱码问题_第1张图片
image.png
2、解压 修改安装包为 mysql

将mysql放到/usr/local下
这么做的目的是mysql的启动脚本以及配置文件的好多配置都是这个路径下,省的改动


image.png
3、添加mysql用户和用户组

groupadd mysql
useradd -r -g mysql mysql

4、修改/etc/my.cnf文件

my.cnf文件有mysql的配置 ,启动mysql的时候默认回去加载此文件
由于有多个my.cnf文件,所以有个优先级的概念
/bin/mysqld --verbose --help |grep -A 1 'Default options' 这个命令来查看优先级

linux下mysql安装、远程访问、乱码问题_第2张图片
image.png

datadir是mysql的数据保存路径
socket是负责socket通信用的

5、初始化数据库

此步的操作是用来加载mysql系统的表等信息 (mysql根目录下执行)
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/

6、给mysql添加权限

chown -R root:root .
chown -R mysql:mysql data

7、启动

cp support-files/mysql.server /etc/init.d/mysql
service mysql start

8、修改密码

./bin/mysqladmin -u root password '密码自己设定'

可能遇到的问题:
1、service mysql start
Starting MySQL.181108 04:58:50 mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
解决办法
创建 mkdir /var/lib/mysql

2、[ERROR] Can't start server : Bind on unix socket: Permission denied
[ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
原因: Mysql客户端和服务器端是通过初始化mysql.sock 文件来进行通信,所以服务器在启动时需要写入该文件,因此该文件所存放的目录必须双方都具有访问权限。
所以,MySQL服务不具备目录 /var/lib/mysql 的写入权限,无法生成mysql.sock文件,自然服务启动时无法找到该文件。
给目录 /var/lib/mysql 付予写入权限或者最大权限—chmod 777 /var/lib/mysql
解决办法 chmod 777 /var/lib/mysql/

3、./mysqladmin -u root password 'root'
./mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
解决:
建立软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

最后注意看错误日志

mysql的错误日志的位置在/etc/my.cnf中标记
log-error

[mysqld_safe]
log-error=/var/log/mysqlerr.log

参考文件:https://blog.csdn.net/smile___you/article/details/54409073
https://www.cnblogs.com/xinjing-jingxin/p/8025805.html
https://blog.csdn.net/qq_32331073/article/details/76229420
https://blog.csdn.net/hjf161105/article/details/78850658
https://www.cnblogs.com/wajika/p/6323026.html

2、设置远程访问

在服务器上安装了mysql之后,默认的话只能够服务器本机进行访问,如果你想用自己电脑的客户端或者跑代码访问数据库,会报错,没有权限

解决

1、检查防火墙没有挡住3306端口
2、将mysql的权限设置为全局

将mysql权限设置成为全局的方法

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

上述是将数据库root用户下密码123456的所有数据库放开访问权限

参考资料:https://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html

3、linux下的乱码问题

进入mysql,发现有中文乱码的问题
解决思路

1、 查看数据库编码

通过这条命令展示其编码

 SHOW VARIABLES LIKE 'character%';
2、修改/etc/my.cnf文件
[mysqld]
character_set_server=utf8
[client]
default-character-set=utf8
注意:如果已经创建好数据库和表发现了中文乱码问题,要把数据库和表删除重建才可以解决问题!

你可能感兴趣的:(linux下mysql安装、远程访问、乱码问题)