168.n1-事件处理

ViewPager和Indicator绑定的时候,滑动监听要设置给Indicator

详情页,tab下面的详情页和子页面banner是相互抵触的,banner需要处理滑动,父页面在位置0处需要拉出菜单栏,这样产生了矛盾,因此需要进行详细的处理,在banner和其父亲的非banner处分别处理

NewsMenuDetailPager.java详情页滑动的处理

 

package com.ldw.news.base.menudetails;

import java.util.ArrayList;

import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.ldw.news.MainActivity;
import com.ldw.news.R;
import com.ldw.news.base.BaseMenuDetailPager;
import com.ldw.news.base.TabDetailPager;
import com.ldw.news.domain.NewsData.NewsTabData;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.event.OnClick;
import com.viewpagerindicator.TabPageIndicator;

/*
 * 菜单详情页-新闻
*/ 
public class NewsMenuDetailPager extends BaseMenuDetailPager implements OnPageChangeListener{

	private ViewPager vp_menu_detail;
	private ArrayList<TabDetailPager> mPagerList;
	private ArrayList<NewsTabData> mNewsTabData;//页签的网络数据
	private TabPageIndicator mIndicator;
	
	public NewsMenuDetailPager(Activity activity, ArrayList<NewsTabData> children) {
		super(activity);
		//接受传过来的children数据,有11个
		mNewsTabData = children;
	}

	@Override
	public View initView() {
		View view = View.inflate(mActivity, R.layout.news_menu_details, null);

		vp_menu_detail = (ViewPager) view.findViewById(R.id.vp_menu_detail);
		mIndicator = (TabPageIndicator) view.findViewById(R.id.indicator);
		
		//xUtils使用注解
		ViewUtils.inject(this, view);
		//不是对vp_menu_detail监听而是对mIndicator监听,viewPager。
		//vp_menu_detail.setOnPageChangeListener(this);
		//ViewPager和Indicator绑定的时候,滑动监听要设置给Indicator
		mIndicator.setOnPageChangeListener(this);
        
		return view;
	}
	
	@Override
	public void initData(){
		//数据是通过从服务器中获取大数据来初始化
		mPagerList = new ArrayList<TabDetailPager>();
		for(int i = 0; i < mNewsTabData.size(); i++){
			TabDetailPager tabDetailPager = new TabDetailPager(mActivity, mNewsTabData.get(i));
			//添加到链表
			mPagerList.add(tabDetailPager);
		}
		vp_menu_detail.setAdapter(new MenuDetailAdapter());
		//在vp_menu_detail设置完成adapter以后才能调用,viewpager和indicator关联
		mIndicator.setViewPager(vp_menu_detail);
		
	}
	
	
	//监听右边的箭头,切换内容,内容+1
	@OnClick(R.id.btn_next)
	public void nextPage(View view){
		int currentItem = vp_menu_detail.getCurrentItem();
		vp_menu_detail.setCurrentItem(++ currentItem);
	}
	
	
	class MenuDetailAdapter extends PagerAdapter{
		//使用开源的框架PageIndicator初始化标题,重写这个方法设置tab
		@Override
        public CharSequence getPageTitle(int position) {
            return mNewsTabData.get(position).title;
        }

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return mPagerList.size();
		}

		@Override
		public boolean isViewFromObject(View view, Object object) {
			// TODO Auto-generated method stub
			return view == object;
		}
		
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			//初始化页面
			TabDetailPager tabDetailPager = new TabDetailPager(mActivity, mNewsTabData.get(position));
			//添加view
			container.addView(tabDetailPager.mRebootView);
			//初始化数据
			tabDetailPager.initData();
			//显示界面
			return tabDetailPager.mRebootView;
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			container.removeView((View) object);
		}
	}


	@Override
	public void onPageScrolled(int position, float positionOffset,
			int positionOffsetPixels) {
		// TODO Auto-generated method stub
		
	}

	//页面被选中,这个是对触摸事件的处理,监听触摸事件,只有在滑倒了最左边才会拉出菜单
	@Override
	public void onPageSelected(int position) {
		//获取到左侧的菜单栏
		MainActivity mainUi = (MainActivity) mActivity;
		SlidingMenu slidingMenu = mainUi.getSlidingMenu();
		if(position == 0){
			//当前位置为0的时候可以全屏触摸,可以拉出来菜单栏
			slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
		}else{
			//不为0的时候不让触摸
			slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
		}
		
	}

	@Override
	public void onPageScrollStateChanged(int state) {
		// TODO Auto-generated method stub
		
	}

}

list_header_topnews.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
	<!-- banner图,继承处理以后的ViewPager,防止父类拦截 -->
    <com.ldw.news.view.TopNewsViewPager
        android:id="@+id/vp_news"
        android:layout_width="match_parent"
    	android:layout_height="200dp"
        />
    <!-- 下方的页签和文本 -->
    	<RelativeLayout 
    	    android:layout_width="match_parent"
    		android:layout_height="wrap_content"
    		android:layout_alignParentBottom="true"
    		android:padding="5dp"
    		android:background="#a000"
    	    >
    	   <TextView 
    	       android:id="@+id/tv_title"
    	       android:layout_width="wrap_content"
    			android:layout_height="wrap_content"
    			android:textColor="#ffffff"
    			android:textSize="16sp"
    			android:text=""
    	       />
    	   <!-- 使用viewpagerindicator实现小圆点 -->
    	   <com.viewpagerindicator.CirclePageIndicator
		        android:id="@+id/indicator"
		        android:padding="10dip"
		        android:layout_height="wrap_content"
		        android:layout_alignParentRight="true"
		        android:layout_width="wrap_content"
		        app:radius="4dp"
		        app:fillColor="#FF0000"
		        app:pageColor="@android:color/darker_gray"
		        app:strokeWidth="2dp"
		        />
    	</RelativeLayout>
</RelativeLayout>

TopNewsViewPager.java 详情页的banner的处理,需要出来几种情形的滑动

package com.ldw.news.view;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

/*
 * banner图中不让父亲拦截ViewPager
 */
public class TopNewsViewPager extends ViewPager {

	int startX;
	int startY;

	public TopNewsViewPager(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public TopNewsViewPager(Context context) {
		super(context);
	}

	/**
	 * 事件分发, 请求父控件及祖宗控件是否拦截事件 
	 * 1. 右划, 而且是第一个页面, 需要父控件拦截 ,拉出菜单栏
	 * 2. 左划, 而且是最后一个页面, 需要父控件拦截,这样跳到父亲的下一页
	 * 3. 上下滑动, 需要父控件拦截,拉出listView,banner只需要处理左右滑动即可
	 */
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		//滑动事件的处理
		switch (ev.getAction()) {
		//按下
		case MotionEvent.ACTION_DOWN:
			//按下的时候先让父亲控件不要拦截
			getParent().requestDisallowInterceptTouchEvent(true);// 不要拦截,
																	// 这样是为了保证ACTION_MOVE调用
			startX = (int) ev.getRawX();
			startY = (int) ev.getRawY();
			break;
			//滑动
		case MotionEvent.ACTION_MOVE:

			int endX = (int) ev.getRawX();
			int endY = (int) ev.getRawY();
			//判断是上下滑动还是左右滑动
			if (Math.abs(endX - startX) > Math.abs(endY - startY)) {// 左右滑动
				if (endX > startX) {// 右划
					if (getCurrentItem() == 0) {// 第一个页面, 需要父控件拦截
						getParent().requestDisallowInterceptTouchEvent(false);
					}
				} else {// 左划
					if (getCurrentItem() == getAdapter().getCount() - 1) {// 最后一个页面,
																			// 需要拦截
						getParent().requestDisallowInterceptTouchEvent(false);
					}
				}
			} else {// 上下滑动
				getParent().requestDisallowInterceptTouchEvent(false);
			}

			break;

		default:
			break;
		}

		return super.dispatchTouchEvent(ev);
	}

}

--------

public class NewsMenuDetailPager extends BaseMenuDetailPager implements OnPageChangeListener{

	private ViewPager vp_menu_detail;
	private ArrayList<TabDetailPager> mPagerList;
	private ArrayList<NewsTabData> mNewsTabData;//页签的网络数据
	private TabPageIndicator mIndicator;
	
	public NewsMenuDetailPager(Activity activity, ArrayList<NewsTabData> children) {
		super(activity);
		//接受传过来的children数据,有11个
		mNewsTabData = children;
	}

	@Override
	public View initView() {
		View view = View.inflate(mActivity, R.layout.news_menu_details, null);

		vp_menu_detail = (ViewPager) view.findViewById(R.id.vp_menu_detail);
		mIndicator = (TabPageIndicator) view.findViewById(R.id.indicator);
		
		//xUtils使用注解
		ViewUtils.inject(this, view);
		//不是对vp_menu_detail监听而是对mIndicator监听,viewPager。
		//vp_menu_detail.setOnPageChangeListener(this);
		//ViewPager和Indicator绑定的时候,滑动监听要设置给Indicator
		mIndicator.setOnPageChangeListener(this);
        
		return view;
	}
	
	@Override
	public void initData(){
		//数据是通过从服务器中获取大数据来初始化
		mPagerList = new ArrayList<TabDetailPager>();
		for(int i = 0; i < mNewsTabData.size(); i++){
			TabDetailPager tabDetailPager = new TabDetailPager(mActivity, mNewsTabData.get(i));
			//添加到链表
			mPagerList.add(tabDetailPager);
		}
		vp_menu_detail.setAdapter(new MenuDetailAdapter());
		//在vp_menu_detail设置完成adapter以后才能调用,viewpager和indicator关联
		mIndicator.setViewPager(vp_menu_detail);
		
	}
	
	
	//监听右边的箭头,切换内容,内容+1
	@OnClick(R.id.btn_next)
	public void nextPage(View view){
		int currentItem = vp_menu_detail.getCurrentItem();
		vp_menu_detail.setCurrentItem(++ currentItem);
	}
	
	
	class MenuDetailAdapter extends PagerAdapter{
		//使用开源的框架PageIndicator初始化标题,重写这个方法设置tab
		@Override
        public CharSequence getPageTitle(int position) {
            return mNewsTabData.get(position).title;
        }

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return mPagerList.size();
		}

		@Override
		public boolean isViewFromObject(View view, Object object) {
			// TODO Auto-generated method stub
			return view == object;
		}
		
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			//初始化页面
			TabDetailPager tabDetailPager = new TabDetailPager(mActivity, mNewsTabData.get(position));
			//添加view
			container.addView(tabDetailPager.mRebootView);
			//初始化数据
			tabDetailPager.initData();
			//显示界面
			return tabDetailPager.mRebootView;
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			container.removeView((View) object);
		}
	}


	@Override
	public void onPageScrolled(int position, float positionOffset,
			int positionOffsetPixels) {
		// TODO Auto-generated method stub
		
	}

	//页面被选中,这个是对触摸事件的处理,监听触摸事件,只有在滑倒了最左边才会拉出菜单
	@Override
	public void onPageSelected(int position) {
		//获取到左侧的菜单栏
		MainActivity mainUi = (MainActivity) mActivity;
		SlidingMenu slidingMenu = mainUi.getSlidingMenu();
		if(position == 0){
			//当前位置为0的时候可以全屏触摸,可以拉出来菜单栏
			slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
		}else{
			//不为0的时候不让触摸
			slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
		}
		
	}

	@Override
	public void onPageScrollStateChanged(int state) {
		// TODO Auto-generated method stub
		
	}

}

阻止ViewPager的滑动NoScrollViewPager.java,重写父类的事件

package com.ldw.beijing.view;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

/*
 * 不让主页的ViewPager滑动,只让其可以点击
 */
public class NoScrollViewPager extends ViewPager {

	public NoScrollViewPager(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	public NoScrollViewPager(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	
	// 表示事件是否拦截, 返回false表示不拦截,让子view去执行
	@Override
	public boolean onInterceptTouchEvent(MotionEvent arg0) {
		return false;
	}
	
	
	/*
	 * 重写onTouchEvent事件,什么都不用做
	 */
	@Override
	public boolean onTouchEvent(MotionEvent arg0) {
		return false;
	}

}

 

 

 

结合我们之前沟通及操作历史记录,就我以下系统及操作记录作出下一步操作指命,不要跨步,我会依据执行结果反馈给你,你再依据所有信息分板如何进行下一步操作。 硬件:斐讯N1盒子 底层ARMBIAN系统信息: _ _ _ ___ ___ /_\ _ _ _ __ | |__(_)__ _ _ _ / _ \/ __| / _ \| '_| ' \| '_ \ / _` | ' \ | (_) \__ \ /_/ \_\_| |_|_|_|_.__/_\__,_|_||_| \___/|___/ v25.08.0 for Aml.S905d running Armbian Linux 5.15.186-ophub Packages: Debian stable (bullseye) IPv4: (LAN) 192.168.1.7 (WAN) 113.78.***.*** Performance: Load: 14% Uptime: 2:05 Memory usage: 26% of 1.76G CPU temp: 49°C Usage of /: 42% of 6.4G storage/: 10% of 29G RX today: 303 MiB Commands: 1PANEL安装日志: [1Panel Log]: Docker 服务已成功重启。 设置 1Panel 端口 (默认是 14687): [1Panel Log]: 您设置的端口是: 14687 设置 1Panel 安全入口 (默认是 8382ffe897): haoyong [1Panel Log]: 您设置的面板安全入口是 haoyong 设置 1Panel 面板用户 (默认是 39e66cce8f): haoyong [1Panel Log]: 您设置的面板用户是 haoyong [1Panel Log]: 设置 1Panel 面板密码,设置后按回车键继续 (默认是 1f8ae2a537): ************** [1Panel Log]: 正在配置 1Panel 服务 Created symlink /etc/systemd/system/multi-user.target.wants/1panel-agent.service → /etc/systemd/system/1panel-agent.service. Created symlink /etc/systemd/system/multi-user.target.wants/1panel-core.service → /etc/systemd/system/1panel-core.service. [1Panel Log]: 正在启动 1Panel 服务 [1Panel Log]: 1Panel 服务已成功启动,正在继续执行后续配置,请稍候... [1Panel Log]: [1Panel Log]: =================感谢您的耐心等待,安装已完成================== [1Panel Log]: [1Panel Log]: 请使用您的浏览器访问面板: [1Panel Log]: 外部地址: http://113.78.237.211:14687/haoyong [1Panel Log]: 内部地址: http://192.168.1.7:14687/haoyong [1Panel Log]: 面板用户: haoyong [1Panel Log]: 面板密码: SANDking100005 [1Panel Log]: [1Panel Log]: 官方网站: https://1panel.cn [1Panel Log]: 项目文档: https://1panel.cn/docs [1Panel Log]: 代码仓库: https://github.com/1Panel-dev/1Panel [1Panel Log]: 前往 1Panel 官方论坛获取帮助: https://bbs.fit2cloud.com/c/1p/7 [1Panel Log]: [1Panel Log]: 如果您使用的是云服务器,请在安全组中打开端口 14687 [1Panel Log]: [1Panel Log]: 为了您的服务器安全,离开此屏幕后您将无法再次看到您的密码,请记住您的密码。 [1Panel Log]: [1Panel Log]: ================================================================ root@armbian:~# mysql安装内容: 安装 名称 mysql 版本 Root 密码 100005 端口 3306 容器名称 可以为空,为空自动生成 允许端口外部访问会放开防火墙端口 CPU 限制 0 核心数 限制为 0 则关闭限制,最大可用为 4核 内存限制 0 限制为 0 则关闭限制,最大可用为 1800.98MB 在应用启动之前执行 docker pull 来拉取镜像 编辑 compose 文件可能导致软件安装失败 系统相关检查如下: root@armbian:~# uname -m aarch64 root@armbian:~# uname -r 5.15.186-ophub root@armbian:~# lsb_release -a || cat /etc/os-release No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye root@armbian:~# free -h total used free shared buff/cache available Mem: 1.8Gi 447Mi 598Mi 19Mi 755Mi 1.2Gi Swap: 900Mi 0B 900Mi root@armbian:~# nproc nproc 4 4 root@armbian:~# free -h total used free shared buff/cache available Mem: 1.8Gi 445Mi 599Mi 19Mi 755Mi 1.2Gi Swap: 900Mi 0B 900Mi root@armbian:~# df -h / Filesystem Size Used Avail Use% Mounted on /dev/mmcblk2p2 6.4G 2.7G 3.7G 42% / root@armbian:~# sudo ss -tulpn | grep -E '80|443|3306|6379' tcp LISTEN 0 4096 0.0.0.0:14687 0.0.0.0:* users:(("1panel",pid=801,fd=11)) root@armbian:~# curl -I https://xibo.org.uk HTTP/2 301 server: nginx date: Sat, 19 Jul 2025 07:14:41 GMT content-type: text/html content-length: 169 location: https://xibosignage.com/ referrer-policy: no-referrer-when-downgrade strict-transport-security: max-age=31536000 root@armbian:~# 拉取源的测试如下: oot@armbian:~# docker images | grep hello-world hello-world latest f1f77a0f96b7 5 months ago 5.2kB root@armbian:~# docker images | grep hello-world hello-world latest f1f77a0f96b7 5 months ago 5.2kB root@armbian:~# docker history hello-world IMAGE CREATED CREATED BY SIZE COMMENT f1f77a0f96b7 5 months ago CMD ["/hello"] 0B buildkit.dockerfile.v0 <missing> 5 months ago COPY hello / # buildkit 5.2kB buildkit.dockerfile.v0 root@armbian:~# ^C 用1PANEL设置DOCKER及拉取MYSQL的操作日志: _ _ _ ___ ___ /_\ _ _ _ __ | |__(_)__ _ _ _ / _ \/ __| / _ \| '_| ' \| '_ \ / _` | ' \ | (_) \__ \ /_/ \_\_| |_|_|_|_.__/_\__,_|_||_| \___/|___/ v25.08.0 for Aml.S905d running Armbian Linux 5.15.186-ophub Packages: Debian stable (bullseye) IPv4: (LAN) 192.168.1.7 (WAN) 116.4.***.*** Performance: Load: 13% Uptime: 7:23 Memory usage: 27% of 1.76G CPU temp: 51°C Usage of /: 42% of 6.4G storage/: 19% of 29G RX today: 79 MiB Commands: Configuration : armbian-config Monitoring : htop root@armbian:~# docker run -d \ --name mysql \ -p 3306:3306 \ -v /mnt/docker/mysql/data:/var/lib/mysql \ -v /mnt/docker/mysql/conf:/etc/mysql/conf.d \ -v /mnt/docker/mysql/log:/var/log/mysql \ -e MYSQL_ROOT_PASSWORD=100005 \ --memory=512m \ --cpus=2 \ --restart=always \ mysql:8.0-oracle Unable to find image 'mysql:8.0-oracle' locally 8.0-oracle: Pulling from library/mysql 66c8c73e9d3d: Pull complete e45847b03d78: Pull complete 87befc648177: Pull complete 008e8e968476: Pull complete a72970729c8f: Pull complete 89b1faffd43a: Pull complete 2bd146ae1d6c: Pull complete a0967528f1a2: Pull complete 38c697cea99a: Pull complete fab608026c1e: Pull complete 24e041f1adac: Pull complete Digest: sha256:63823b8e2cbe4ae0c558155e02d00beba56130fbc3d147efccbdb328ae2dbb9e Status: Downloaded newer image for mysql:8.0-oracle 67460db937cbeedc95691f01d4b961e6a42616b45f60cd62107f73bd48b2b2b9 root@armbian:~# ^C root@armbian:~# docker ps -a | grep mysql 67460db937cb mysql:8.0-oracle "docker-entrypoint.s…" 8 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql root@armbian:~# docker logs mysql 2025-07-19 10:55:41+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.42-1.el9 started. 2025-07-19 10:55:43+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2025-07-19 10:55:43+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.42-1.el9 started. 2025-07-19 10:55:44+00:00 [Note] [Entrypoint]: Initializing database files 2025-07-19T10:55:44.643965Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. 2025-07-19T10:55:44.644644Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.42) initializing of server in progress as process 82 2025-07-19T10:55:44.722791Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2025-07-19T10:55:48.060736Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2025-07-19T10:56:03.156308Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. 2025-07-19 10:56:16+00:00 [Note] [Entrypoint]: Database files initialized 2025-07-19 10:56:16+00:00 [Note] [Entrypoint]: Starting temporary server 2025-07-19T10:56:16.845924Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. 2025-07-19T10:56:16.851097Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.42) starting as process 126 2025-07-19T10:56:16.917937Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2025-07-19T10:56:17.897029Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2025-07-19T10:56:21.388398Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2025-07-19T10:56:21.388602Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. 2025-07-19T10:56:21.415665Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. 2025-07-19T10:56:21.548697Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock 2025-07-19T10:56:21.549457Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.42' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL. 2025-07-19 10:56:21+00:00 [Note] [Entrypoint]: Temporary server started. '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. 2025-07-19 10:56:44+00:00 [Note] [Entrypoint]: Stopping temporary server 2025-07-19T10:56:44.779995Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.42). 2025-07-19T10:56:46.899809Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.42) MySQL Community Server - GPL. 2025-07-19 10:56:47+00:00 [Note] [Entrypoint]: Temporary server stopped 2025-07-19 10:56:47+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up. 2025-07-19T10:56:48.299792Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. 2025-07-19T10:56:48.305067Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.42) starting as process 1 2025-07-19T10:56:48.334120Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2025-07-19T10:56:49.180497Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2025-07-19T10:56:54.411653Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2025-07-19T10:56:54.411875Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. 2025-07-19T10:57:02.537906Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. 2025-07-19T10:57:02.670404Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock 2025-07-19T10:57:02.670930Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.42' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. root@armbian:~# docker exec -it mysql mysql -uroot -p100005 -e "SHOW DATABASES;" mysql: [Warning] Using a password on the command line interface can be insecure. +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ root@armbian:~# mysql -h 192.168.1.7 -P 3306 -uroot -p100005 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.42 MySQL Community Server - GPL Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> ^接下来怎么操作
07-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值